求助一个HQL查询 不允许不带where条件 条件 加排序的问题

我用hibernate中的hql语句写了一个条件查询,但是不能正常执行,请帮忙看一下_百度知道
我用hibernate中的hql语句写了一个条件查询,但是不能正常执行,请帮忙看一下
public List&User& selectUser(User user) {
StringBuffer stringBuffer=new StringBuffer();
stringBuffer.append(&from User where 1=1 &);
if(user.getUsername()!=null&&user.getUsername().trim().length()&0){
stringB...
我有更好的答案
你报的错误是啥?很直观的看你的代码,在所有的and之前都没有空格,所以拼出来的HQL是有问题的,你的代码还有几个问题1,最好用StringBuilder或者StringBuffered2,最好不要用where 1=1这样查询效率最低。如果你想了解更多的Hibernate查询或者HQL的东西,看我的个人简介里面的推荐资料。
采纳率:66%
肯定执行不了了
都没有空格 输出的sql 不对 建议:写一个 test方法 传一个user 进来 看看你输出的 sql 是什么样子
然后根据你的sql 一项项的调还有 你那些个 !=null, .trim().length()&0
你就不能抽一个方法出来
这样好难看的
你的sql只是相加了 但是你看看你的sql 的查询条件 如果都有的话 你的查询条件前后都没有空格,会连起来的,所以无法分析
stringBuffer.append(& and education=&+user.getEducation()); // and前,应该留一空格如果查询的条件是字符串,应该加单引号。——查询的条件,最好使用参数 。没你的环境,不太好测试。
其他1条回答
为您推荐:
其他类似问题
hql的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。hibernate中,SQL查询,遇到多条件查询(条件可有可无)时,是怎么处理的? - ITeye问答
请教大家个问题,hibernate中,SQL查询,遇到多条件查询(条件可有可无)时,是怎么处理的?
我主要是想写一个hibernate的通用的方法,
由于hql,查询太多,所以我想用SQL,& 但是现在网上的SQL实现,差不多都是拼SQL,感觉这样不太好维护
我想实现的效果这样的:
select * from tablename
where 1=1
& and name = :name
& and pwd = :pwd
这里面的 name,pwd,可有可无,当没有输值时,则查询全部,
SQL,具体配置,是放在hbm.xml中,
传值,我是用& query.setProperties(Map)处理的,
不知道大家对这个问题,有没有好的解决办法
问题补充:ethen 写道你可以自己定义一个方法getQuery,自己定制query。
能不能说下,怎么个 自己定制法
你可以自己定义一个方法getQuery,自己定制query。
已解决问题
未解决问题没有更多推荐了,
不良信息举报
举报内容:
HQL 简单的几种带条件查询方法
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!没有更多推荐了,
不良信息举报
举报内容:
hibernate--HQL查询语句-----分组、排序--多条件排序
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!1 public List&?& getUntakedOrderList(Long userId, List statusList) {
Session currentSession = this.getSessionFactory().getCurrentSession();
String hql = "select orderInfo.orderStatus as orderStatus, orderInfo.orderTime as orderTime, areaRelationStart.areaCityName as startCityName, areaRelationStart.areaName as startAreaName, areaRelationEnd.areaCityName as endCityName, " +
"areaRelationEnd.areaName as endAreaName,userAddressStart.addressLocation as startAddress,userAddressEnd.addressLocation as endAddress,orderInfo.orderId as orderId," +
"userAddressEnd.addressName as addressName,orderInfo.orderCommonNo as orderCommonNo " +
"from OrderInfo as orderInfo left outer join OrderInfoAppend as orderInfoAppend on orderInfo.orderId=orderInfoAppend.appendOrderId " +
"left join UserAddress as userAddressStart on orderInfo.orderSendAddId=userAddressStart.addressId " +
"left join UserAddress as userAddressEnd on orderInfo.orderReceiveAddId=userAddressEnd.addressId " +
"left join AreaRelation as areaRelationStart on areaRelationStart.areaCode=userAddressStart.addressCity " +
<span style="color: #
"left join AreaRelation as areaRelationEnd on areaRelationEnd.areaCode=userAddressEnd.addressCity" +
<span style="color: #
" where (orderInfoAppend.appendOrderId = null and orderInfo.orderUserId=(:userId) and orderInfo.orderStatus in (:statusList) " +
"and orderInfo.orderDeleted=false) or (orderInfo.orderUserId=(:userId) and orderInfo.orderStatus=(:orderStatus) and orderInfo.orderDeleted=false) order by orderInfo.orderTime desc ";
<span style="color: #
Query query = currentSession.createQuery(hql)
<span style="color: #
.setParameter("userId", userId)
<span style="color: #
.setParameterList("statusList", statusList)
<span style="color: #
.setParameter("orderStatus", 290)
<span style="color: #
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
<span style="color: #
return query.list();
<span style="color: #
1.红色部分为第一部分的条件,蓝色部分为第二部分的条件
阅读(...) 评论()

我要回帖

更多关于 不允许不带where条件 的文章

 

随机推荐