为了账号安全,请及时绑定邮箱和手机立即绑定

创建一个 HQL 查询,该查询将获取集合中的每个项目并进行比较

创建一个 HQL 查询,该查询将获取集合中的每个项目并进行比较

FFIVE 2023-08-04 14:42:47
我有以下 HQL 查询SELECT ob FROM objectBase ob WHERE size(ob.listSC) > 0 AND ob.listSC.registrationDate BETWEEN :startDate AND :endDate它应该做什么:获取数据库中的所有objectBase对象,其中listSC(实体集合)不为null且为空(不幸的是无法弄清楚如何使其也忽略 null 值)对于listSC中的每个项目,检查特定实体在给定日期之间是否具有RegistrationDate属性。但不幸的是它给了我Caused by: org.hibernate.QueryException: illegal attempt to dereference collection [objectbase0_.id.listSC] with element property reference [registrationDate] at org.hibernate.hql.internal.ast.tree.DotNode$1.buildIllegalCollectionDereferenceException(DotNode.java:73)我相信这是有充分理由的。问题是如何实施这种行为?最好不使用JOIN。
查看完整描述

1 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

如果您需要任何帮助,请尝试以下查询,让我知道。

SELECT ob FROM objectBase ob left join ob.listSC sc WHERE size(ob.listSC) > 0 AND sc.registrationDate BETWEEN :startDate AND :endDate


查看完整回答
反对 回复 2023-08-04
  • 1 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信