休眠:无效的 ORDER BY 表达式
Hibernate : invalid ORDER BY expression
我试过像这样向我的 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
问题是,我之前在我的 collection 上使用了 @OrderBy
注释,它产生了相同的查询,并且有效:
order by
elements2_.i_order_nr asc limit ?
但是对于我的实体中的属性,它会导致异常。
顺便说一下,如果我尝试用 MYSQLSERVER
测试同一个程序,它会完美运行。
知道为什么或如何避免这种情况吗?
非常感谢!
对于仍然感兴趣的人:问题是我设置了一个属性的投影并设置了另一个属性的顺序。这显然不被方言或数据库支持。
我试过像这样向我的 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
问题是,我之前在我的 collection 上使用了 @OrderBy
注释,它产生了相同的查询,并且有效:
order by
elements2_.i_order_nr asc limit ?
但是对于我的实体中的属性,它会导致异常。
顺便说一下,如果我尝试用 MYSQLSERVER
测试同一个程序,它会完美运行。
知道为什么或如何避免这种情况吗?
非常感谢!
对于仍然感兴趣的人:问题是我设置了一个属性的投影并设置了另一个属性的顺序。这显然不被方言或数据库支持。