我有一个内存数据库,里面有5个元素。它看起来像这样:
(1, '1542'),
(2, '9999'),
(3, '456'),
(4, '456'),
(5, '21568');
使用Persistence API's Query object,我正在构建以下查询:
SELECT c FROM table c WHERE c.secondParam = :secondParam ORDER BY c.id asc AND rownum <= 2;
我得到了预期的结果:
+----+-----------------+
| id | secondParam |
+----+-----------------+
| 3 | 456 |
| 4 | 456 |
+----+-----------------+
但是,运行以下查询(在我尝试测试的遗留代码中):
SELECT c FROM table c WHERE c.secondParam = :secondParam AND rownum <= 2 ORDER BY c.id asc;
根本没有结果。
在数据库管理器(即DBeaver)中运行第一个查询甚至会出错:
SQL Error [933] [42000]: ORA-00933: Sql command does not end correctly
第二种在DBeaver中运行良好,但在我的内存测试中没有。
Javax是否重新排序参数本身才能使其有效?从技术上讲,这两个查询有什么区别?这个API正在进行深入的啤酒厂以确定操作的优先顺序吗?
谢谢!