Jakarta ee 如何使用JPA1.0执行非多态JPQL查询?

Jakarta ee 如何使用JPA1.0执行非多态JPQL查询?,jakarta-ee,orm,jpa,jpql,openjpa,Jakarta Ee,Orm,Jpa,Jpql,Openjpa,假设我有3个实体,基本我没有测试,但我认为你需要类似的东西: SELECT b FROM Basic b WHERE b NOT IN (FROM SubSub) JPA1.2不存在。也许你指的是JPA1.08[你是对的。我很尴尬这是一个非常好的主意:虽然我猜是这样的。从基本b中选择b,其中b不在选择s中,从子Sub s中选择b是错误的?这似乎仍然是一个解决办法,但很好:是的,但我认为在JPA中,选择部分在这种情况下是可选的。无论如何,你的查询也应该工作。但是,我看不到这是a这是一个变通方法,

假设我有3个实体,基本我没有测试,但我认为你需要类似的东西:

SELECT b FROM Basic b WHERE b NOT IN (FROM SubSub)

JPA1.2不存在。也许你指的是JPA1.08[你是对的。我很尴尬这是一个非常好的主意:虽然我猜是这样的。从基本b中选择b,其中b不在选择s中,从子Sub s中选择b是错误的?这似乎仍然是一个解决办法,但很好:是的,但我认为在JPA中,选择部分在这种情况下是可选的。无论如何,你的查询也应该工作。但是,我看不到这是a这是一个变通方法,我认为这是一个正确的方法。事实上,我更喜欢它,而不是JPA2.0。你粘贴的备选方案…因为你真正想要的是不是子订阅的基础知识,查询是逻辑的。如果可行,请毫不犹豫地将答案标记为已接受:我不会犹豫,非常感谢:我之所以称之为变通方法,是因为我猜你不能选择基本和子组,而不选择中间的子组?!但是,谁在乎呢。这不是我需要的…因为我使用SingleTable继承将从基本b中选择b,其中b.id不在从子组选择s.id中提高性能?总之,thx再次。我认为在这种情况下性能没有提高,因为JPA已经在使用ID来检查平等性…我认为你做得不那么清晰,也不那么解耦例如,如果你更改标识符的名称,或者如果你将来甚至创建一个复合标识符,这个查询将开始失败,所以我认为第一种方法更好IMHO。好吧,你告诉我要耐心,我就是这样做的!瞧L