gpt4 book ai didi

java - 跨连接子类问题进行限制条件查询

转载 作者:行者123 更新时间:2023-12-01 05:58:13 25 4
gpt4 key购买 nike

我有以下图表:

OrderLine
OrderLineExtension
OrderLineExtensionA
OrderLineExtensionB
OrderLineExtensionC

OrderLine 包含一组 OrderLineExtension。
OrderLineExtension 定义为:@Inheritance(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 中是正确的。但是,我如何遍历到扩展呢?我无法嵌套另一个 createCriteria,因为父类(super class)中没有对子类的引用。

如有任何帮助,我们将不胜感激。

最佳答案

哎呀,别担心。之所以提出这个问题,是因为我没有意识到同事在每个加入的子类中创建了相同的字段。 Hibernate 只会去第一个子类来加载该属性。这就是为什么我得到了错误的实例。

现在我们已经重命名了它们,一切正常。虽然我的头有点挠痒痒。

关于java - 跨连接子类问题进行限制条件查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2139550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com