如何加入 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)...

这适用于我的用例,但预计在某些情况下问题可能需要更好的答案 - 例如其中所需的连接集包括子项和父项。