java - hibernate : invalid ORDER BY expression

标签 java mysql hibernate hsqldb ucanaccess

我试过像这样向我的Criteria 添加一些订单。

crit.addOrder(Order.asc("priority")); // Not the real property though

然后使用带有 HSQLDialect 的 MsAccess 数据库在我的系统上进行测试我得到了

Caused by: org.hsqldb.HsqlException: invalid ORDER BY expression

所以我试着显示查询,它是这样写的:

Hibernate: 
/* criteria query */ select
    distinct this_.i_id as y0_ 
from
    T_FIT_ARTICLE this_ 
where
    (
        this_.b_export_ready=? 
        or this_.d_application_deadline>=?
    ) 
order by
    this_.d_application_deadline asc limit ? 
//FROM HERE THE STACK TRACE

问题是,我之前在我的集合上使用了 @OrderBy 注释,它产生了相同的查询,并且这个有效:

order by
    elements2_.i_order_nr asc limit ?

但是对于我的实体中的属性,它会导致异常。

顺便说一下,如果我尝试用 MYSQLSERVER 测试同一个程序,它会完美运行。

知道为什么或如何避免这种情况吗?

非常感谢!

最佳答案

对于仍然感兴趣的人:问题是我设置了一个属性的投影并设置了另一个属性的顺序。这显然不被方言或数据库支持。

关于java - hibernate : invalid ORDER BY expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43851483/

相关文章:

java - 需要来自对象数组列表的映射

java - 设置套接字操作的超时

PHP:在报告中显示 WMS 的按日期库存

jquery datepicker spring mvc 日期格式

java - 从JAVA邮件发送到IMAP邮箱时附件文件名发生变化

java - Ant 与 JavaMail : authentication required

mysql - 在 JAVA swing 中将数据库记录显示到 JTable

mysql - 如何使这个 eav 查询产生水平结果

java - Spring、MySQL 和 Hibernate 返回针对列 'row_id' 调整的超出范围值

java - 创建 hibernate 查询来执行两个选择查询列的总和