Hibernate 中find方法HQL语句 and 和 or 的混合使用
我想写一个HQL语句查询使用,就是有一个ID条件是必须的,其他的一些条件是或的(就是几个条件中符合一个就可以)设想是fromGoodswherename=?orvalue...
我想写一个HQL语句查询使用,就是有一个ID条件是必须的,其他的一些条件是或的(就是几个条件中符合一个就可以)
设想是 from Goods where name = ? or value =? or mark =? and ID =?
但是我现在这样做,and没有效果,不属于这个Id的也可以查到这个Id下的消息
请问该如何更改? 展开
设想是 from Goods where name = ? or value =? or mark =? and ID =?
但是我现在这样做,and没有效果,不属于这个Id的也可以查到这个Id下的消息
请问该如何更改? 展开
3个回答
展开全部
from Goods where id = ? and (name = ? or name is null) and (value = ? or value is null) and (mark = ? or mark is null)
这样试试... or不能连接那么多的...
这样试试... or不能连接那么多的...
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
括号!
首先判断要查询的name和value和mark是否empty,如果不为empty再写到HQL语句作为空则不写
(name = ? or value =? or mark =?) and ID =?
String hql="........";
ArrayList para=new ArrayList();
if(! ( isEmpty(name) && isEmpty(value) && isEmpty(mark) ) ){
//再逐个判断是否empty,哪个不是empty,写到HQL中。
//hql增加一个、参数也增加一个。
//para
}
首先判断要查询的name和value和mark是否empty,如果不为empty再写到HQL语句作为空则不写
(name = ? or value =? or mark =?) and ID =?
String hql="........";
ArrayList para=new ArrayList();
if(! ( isEmpty(name) && isEmpty(value) && isEmpty(mark) ) ){
//再逐个判断是否empty,哪个不是empty,写到HQL中。
//hql增加一个、参数也增加一个。
//para
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把or全部改成and吧 怎么可能or和and一起用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询