gpt4 book ai didi

java - 将表映射到 Hibernate 中的两个继承表

转载 作者:行者123 更新时间:2023-12-01 15:47:06 25 4
gpt4 key购买 nike

我正在尝试映射一组之间具有复杂关系的表。我有以下带有字段的表:

Table: Parent
id
type

Table: Child1
parentId : foreign
list of fields

Table: Child2
parentId : foreign
list of fields

在数据库中,基本思想是父表类型字段确定相关记录是否出现在 Child1 或 Child2 中。通过这种方式,我根据记录的类型存储有关记录的信息,例如他们都是客户,但有些是个人,有些是企业,因此我可以根据此存储单独的信息。

我的问题是如何在 Hibernate 中对此进行建模?我知道使用 @SecondaryTable 来合并两个表,但是如何根据父表中的值来执行此操作?

最佳答案

您正在寻找的是为该类使用鉴别器列。请参阅Hibernate docs re inheritance mapping

示例是

<class name="Payment" table="PAYMENT">
<id name="id" type="long" column="PAYMENT_ID">
<generator class="native"/>
</id>
<discriminator column="PAYMENT_TYPE" type="string"/>
<property name="amount" column="AMOUNT"/>
...
<subclass name="CreditCardPayment" discriminator-value="CREDIT">
<join table="CREDIT_PAYMENT">
<property name="creditCardType" column="CCTYPE"/>
...
</join>
</subclass>
<subclass name="CashPayment" discriminator-value="CASH">
...
</subclass>
<subclass name="ChequePayment" discriminator-value="CHEQUE">
...
</subclass>
</class>

关于java - 将表映射到 Hibernate 中的两个继承表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6898787/

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