如何加入 Hibernate/JPA 2.0 CriteriaQuery 中的 JOINED 子类?
How to join to a JOINED subclass in a Hibernate / JPA 2.0 CriteriaQuery?
我需要从超类属性连接到它的子类实体(使用 JOINED 继承)。试过这样的事情:
root.join(RootClass_.superClassAttribute).as(SubClass.class)
...并且需要通过从子类加入其他实体来继续此操作。
但是 as
返回的是 CastFunction
所以不确定这怎么可能?
(注意:我使用的是 JPA 2.0,而不是 2.1,所以不能使用 treat
。)
最后我通过以相反的方式构建查询来让它工作 - 所以不是尝试加入子class而是简单地使用父元模型class:
inverseRoot.join(InverseRootClass_.subClassAttribute).join(ParentClass.attribute)...
这适用于我的用例,但预计在某些情况下问题可能需要更好的答案 - 例如其中所需的连接集包括子项和父项。
我需要从超类属性连接到它的子类实体(使用 JOINED 继承)。试过这样的事情:
root.join(RootClass_.superClassAttribute).as(SubClass.class)
...并且需要通过从子类加入其他实体来继续此操作。
但是 as
返回的是 CastFunction
所以不确定这怎么可能?
(注意:我使用的是 JPA 2.0,而不是 2.1,所以不能使用 treat
。)
最后我通过以相反的方式构建查询来让它工作 - 所以不是尝试加入子class而是简单地使用父元模型class:
inverseRoot.join(InverseRootClass_.subClassAttribute).join(ParentClass.attribute)...
这适用于我的用例,但预计在某些情况下问题可能需要更好的答案 - 例如其中所需的连接集包括子项和父项。