gpt4 book ai didi

java - 我该如何进行以下 hibernate 映射?

转载 作者:行者123 更新时间:2023-12-01 15:19:49 24 4
gpt4 key购买 nike

我有以下数据库架构:

table a {
id,
state
}

table b {
id,
a_id,
is_valid,
amount
}

我想要一个 hibernate 映射,仅当 a.state 具有特定值时,我才从表 b 中获取值。这是我的 hibernate 映射(使用 jBoss Documentation 中的示例)

<discriminator column="state" type="string"/>
<subclass name="ClassB" discriminator-value="VALUE1">
<join table="b">
<key column="a_id"/>
<property name="amount" column="amount"/>
</join>
</subclass>

当我这样做时,我的 xml 显示了一个语法错误,指出必须遵循层次结构。

我正在做的事情是否正确,如果不正确,如果有人能告诉我前进的方向,那就太好了。谢谢。

P.S - 表 b 中的多个条目将具有 a_id 列。然而,b 中只有一行设置了 is_valid 值,如果我在 POJO 中得到这一行就足够了

最佳答案

在我看来,您正在使用鉴别器策略为每个子类映射一个表。这意味着表 a 和表 b 之间存在 1 - 1 行关联,其中表 b(子类)的主键也将是表 a 的外键。

但是,您的映射有点奇怪,因为您有

<key column="a_id" />

通常这应该是

<key column="id" />

并且不会有“a_id”列。

但是,您的数据库设计看起来像是一对多关系,而不是子类关系。

如果没有你的对象本身,我真的无法说出你想要做什么。

查看有关继承的 hibernate 文档。

http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/inheritance.html

关于java - 我该如何进行以下 hibernate 映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11104513/

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