HIbernate.in
在使用限制时,我对Hibernate条件有问题。在。。如果发送到限制的列表中没有任何值,那么它会抛出SQL语法异常,这是预期的,因为查询看起来像 从人员p中选择*,其中p.id位于() Hibernate日志出错--- Spring日志出错HIbernate.in,hibernate,spring-mvc,sqlexception,hibernate-criteria,restrictions,Hibernate,Spring Mvc,Sqlexception,Hibernate Criteria,Restrictions,在使用限制时,我对Hibernate条件有问题。在。。如果发送到限制的列表中没有任何值,那么它会抛出SQL语法异常,这是预期的,因为查询看起来像 从人员p中选择*,其中p.id位于() Hibernate日志出错--- Spring日志出错 org.hibernate.exception.SQLGrammarException: could not execute query org.hibernate.exception.SQLStateConverter.convert(SQLStateCo
org.hibernate.exception.SQLGrammarException: could not execute query
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
org.hibernate.loader.Loader.doList(Loader.java:2536)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276
org.hibernate.loader.Loader.list(Loader.java:2271
org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:119
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1716
org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:347)
导致它的代码是
criteria.add(Restrictions.in("id", idList));
我尝试过这样做,但它会返回表中的所有值,这与我想要的完全相反。。当列表大小为0时,不返回任何内容
if(idList.size()>0
criteria.add(Restrictions.in("id", idList));
所以,我应该在这里做些什么更改,以便在列表中没有任何值而不是异常时,我不会从查询中得到任何结果。。。提前谢谢 将整个条件包装在if-then语句中。如果
idList
为null或idList.size()==0
,甚至不用麻烦运行查询
if(idList.size()>0
criteria.add(Restrictions.in("id", idList));