我有以下图表:
OrderLine
OrderLineExtension
OrderLineExtensionA
OrderLineExtensionB
OrderLineExtensionC
OrderLine包含一组OrderLineExtension OrderLineExtension定义为:@Inheritance(strategy = InheritanceType.JOINED)并标记为实体并且是抽象的
在db中为层次结构中的每个类创建一个表。
我正在尝试执行一个查询,其中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抱怨它无法在class orderLineExtension中找到orderReferenceNumber,这是正确的,因为它在orderLineExtensionA中。但是,我如何遍历扩展?我不能嵌套另一个createCriteria,因为超类中没有引用子类。
任何帮助都将不胜感激。
答案 0 :(得分:0)
现在我们已将它们重命名,一切正常。不过我的脑袋已经刮了一会儿。