【问题标题】:Hibernate : invalid ORDER BY expressionHibernate:无效的 ORDER BY 表达式
【发布时间】:2017-10-06 16:22:51
【问题描述】:

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

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

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

原因:org.hsqldb.HsqlException: ORDER BY 表达式无效

所以我尝试显示查询,它的内容如下:

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 测试相同的程序,它会完美运行。

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

非常感谢!

【问题讨论】:

  • 为什么要使用带有 HSQLDB 方言的 MS Access 数据库?
  • @fredt 因为我通过 Ucanaccess 连接访问,并且 ucanaccess 使用这种方言,否则我尝试了 MySqlServerDialect,同样的问题:D

标签: java mysql hibernate hsqldb ucanaccess


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    相关资源
    最近更新 更多