我正在尝试进行Hibernate查询(JPA over Hibernate)。考虑一个非常简单的实体模型:名为DocumentedObject
的实体,其ElementCollection
UserHistoryObject
(名为personInChargeHistory
)。我想通过HQL查找历史记录中有一些特殊DocumentedObjects
的{{1}}。尝试查询:
User
结果是:
select d from DocumentedObject as d join d.personInChargeHistory as ph where ph.value.id=:some_userid
我能想到的唯一问题是UsrHistoryObject是可嵌入的。但如果这是问题,我应该如何进行此类查询?这是我的实体:
Caused by: org.hibernate.QueryException: could not resolve property: value.id of: DocumentedObject [select distinct d from DocumentedObject as d join d.personInChargeHistory as ph where ph.value.id=2 ]
答案 0 :(得分:2)
在JPA中,看起来像查询Embeddables的Element集合有点被忽略了。我检查了规范,没有明确说明为它们支持Path表达式。
我搜索Hibernate错误数据库,发现没有针对您的具体问题报告错误。最接近的一个表明嵌入式元素集合的问题就是这个: https://hibernate.atlassian.net/browse/HHH-8926
使用Eclipselink情况看起来好一点,因为EclipseLink支持2.4.0版本的此类查询。