永发信息网

JAVA:帮我修改一下简单的hibernate的hql语句

答案:3  悬赏:20  手机版
解决时间 2021-07-25 18:10
  • 提问者网友:不爱我么
  • 2021-07-25 06:06

帮我修改一下hql语句,我要表达的是
from RoutineUserGradeScore c where c.configure=:configure and :checkUser in (c.checkUsers)
这个意思
c.checkUsers是一个Set
checkUser 是一个对象


但是:checkUser in (c.checkUsers)这样写肯定是不行的,谁hql语法比较熟的帮我改一下

最佳答案
  • 五星知识达人网友:西岸风
  • 2021-07-25 07:33

你不要用那个写hql语句了



hibernate有个类叫Criteria 用来处理比较复杂的操作



Session session = sessionFactory.openSession();
Criteria criteria = session.createCriteria(CardType.class);


是这样创建的


下面这个是个模糊查询
criteria.add(Restrictions.like("cardTypeName", cardTypeName,
MatchMode.ANYWHERe));
下面这个是个是否为空 那个cards是个Set集合
criteria.add(Restrictions.isNotNull("cards"));


下面是分页
criteria.setFirstResult(pageNum);
criteria.setMaxResults(pageSize);


得到List集合
List list = criteria.list();
session.close();



你不用拼语句用这个应该可以解决


蛮好用的



有什么不明白的 可以QQ我272193368
return list;



全部回答
  • 1楼网友:不想翻身的咸鱼
  • 2021-07-25 10:29
from RoutineUserGradeScore c where c.configure=:configure and :checkUser in (c.checkUsers) 你的and :checkUser in (c.checkUsers)这里都写错了,应该是and c.checkUsers in 你checkUser 的对象放在一个集合中你在去试试看。
  • 2楼网友:猎心人
  • 2021-07-25 08:52

您把您的数据库结构写出来看看

您光是说

c.checkUsers是一个Set checkUser 是一个对象

确实没明白啊

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯