javax persitence:查询解释顺序

tgabmvqs  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(147)

我有一个内存数据库,里面有5个元素。它看起来是这样的:

(1, '1542'),
(2, '9999'),
(3, '456'),
(4, '456'), 
(5, '21568');

使用持久性api的查询对象,我正在构造以下查询:

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是为了优先考虑的行动?
谢谢您!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题