通过ElementCollection连接的Hibernate查询不起作用

时间:2014-07-12 09:48:39

标签: java hibernate jpa join hql

我正在尝试进行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 ]

1 个答案:

答案 0 :(得分:2)

在JPA中,看起来像查询Embeddables的Element集合有点被忽略了。我检查了规范,没有明确说明为它们支持Path表达式。

我搜索Hibernate错误数据库,发现没有针对您的具体问题报告错误。最接近的一个表明嵌入式元素集合的问题就是这个: https://hibernate.atlassian.net/browse/HHH-8926

使用Eclipselink情况看起来好一点,因为EclipseLink支持2.4.0版本的此类查询。