Java 跨联接子类问题的带限制的条件查询
我有以下图表:Java 跨联接子类问题的带限制的条件查询,java,hibernate,inheritance,criteria,detachedcriteria,Java,Hibernate,Inheritance,Criteria,Detachedcriteria,我有以下图表: OrderLine OrderLineExtension OrderLineExtensionA OrderLineExtensionB OrderLineExtensionC OrderLine包含一组OrderLineExtension。 OrderLineExtension定义为:@Inheritation(strategy=InheritanceType.JOINED),并标记为实体,是抽象的 在数据库中为层次结构
OrderLine
OrderLineExtension
OrderLineExtensionA
OrderLineExtensionB
OrderLineExtensionC
OrderLine包含一组OrderLineExtension。OrderLineExtension定义为:@Inheritation(strategy=InheritanceType.JOINED),并标记为实体,是抽象的 在数据库中为层次结构中的每个类创建一个表 我试图执行一个查询,其中OrderLine上的项目名称是“item”,但OrderLineExtensionA中的orderReferenceNumber是“orderRef” 我不知道如何从OrderLine遍历到OrderLineExtensionA,因为从OrderLineExtension到OrderLineExtensionA没有java引用 到目前为止,我已经得到了这个,当然不起作用
filter=DetachedCriteria.forClass(OrderLine.class);
.add(Restrictions.eq("item", "item"));
.createCriteria("orderLineExtension")
.add(Restrictions.eq("orderReferenceNumber", "orderRef"));
这失败了,因为hibernate抱怨在orderLineExtension类中找不到orderReferenceNumber,该类在orderLineExtensionA中为true。但是,如何遍历到分机?我无法嵌套另一个createCriteria,因为超类中没有对子类的引用
任何帮助都将不胜感激。哦,别担心。提出这个问题是因为我不知道collegue在每个连接的子类中创建了相同的字段。Hibernate只需在第一个子类中加载属性。这就是为什么我得到了错误的实例 现在我们重新命名了它们,一切正常。我的头挠了一会儿