我有以下 HQL 查詢SELECT ob FROM objectBase ob WHERE size(ob.listSC) > 0 AND ob.listSC.registrationDate BETWEEN :startDate AND :endDate它應(yīng)該做什么:獲取數(shù)據(jù)庫中的所有objectBase對象,其中l(wèi)istSC(實(shí)體集合)不為null且為空(不幸的是無法弄清楚如何使其也忽略 null 值)對于listSC中的每個(gè)項(xiàng)目,檢查特定實(shí)體在給定日期之間是否具有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)我相信這是有充分理由的。問題是如何實(shí)施這種行為?最好不使用JOIN。
1 回答
溫溫醬
TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果您需要任何幫助,請嘗試以下查詢,讓我知道。
SELECT ob FROM objectBase ob left join ob.listSC sc WHERE size(ob.listSC) > 0 AND sc.registrationDate BETWEEN :startDate AND :endDate
添加回答
舉報(bào)
0/150
提交
取消
