Javax Persitence:查询插入顺序

时间:2018-01-04 14:53:31

标签: java mysql sql sql-order-by

我有一个内存数据库,里面有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正在进行深入的啤酒厂以确定操作的优先顺序吗?

谢谢!

0 个答案:

没有答案