2017-05-08 63 views
3

我试图添加一些命令到我的Criteria像这样。休眠:无效ORDER BY表达式

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 

事情是,我用d的@OrderBy注释上我的收藏之前,这产生相同的查询,这个工程:

order by 
    elements2_.i_order_nr asc limit ? 

但随着我的实体的属性,它会导致异常。顺便说一句,如果我试图用MYSQLSERVER测试相同的程序,它可以很好地工作。

任何想法为什么或如何避免这种情况?

非常感谢!

+0

你为什么用HSQLDB方言使用MS Access数据库? – fredt

+0

@fredt,因为我通过Ucanaccess连接访问,并且ucanaccess使用这个Dialect, 否则我试过MySqlServerDialect,同样的问题:D –

回答

0

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