如何使用hibernate/jpa注释将一个类映射到不同的表

Jay*_*Jay 11 java orm annotations hibernate jpa

我目前仍然坚持看似非常简单的问题,但我似乎无法找到方法:

我有2个相同的表:

  1. tbl_creditcard_approved_txns
  2. tbl_creditcard_declined_txns

两者中的字段是相同的,我有一个类 - Transaction用于表示表中的所有适当字段.

我正在尝试将两个不同的实体(每个表一个)映射到上面的类.在旧世界中,我已经创建了两个hbm.xml文件,每个文件对应一个表并将它们映射到Transaction.然后,我将在持久性期间使用实体名称,以确保对象在正确的表中持久化,具体取决于具体情况.

我正在尝试使用当前的注释来实现相同的目标但到目前为止在将2个实体映射到单个类时没有运气.这有可能吗?

我目前正在使用不同的方法,因为我已经将所有公共字段(相同的列名称)提取到一个@MappedSuperClass并且已经创建了两个单独的类(每个实体一个)从超类扩展(这些类只有相同的具有不同列名的字段(如果适用).

les*_*es2 19

使用@MappedSuperclass,您将按以下步骤操作:

@MappedSuperclass
public class Transaction ...

@Entity
@Table(name="tbl_creditcard_approved_txns")
public class DeclinedTransaction extends Transaction ...

@Entity
@Table(name="tbl_creditcard_declined_txns")
public class ApprovedTransaction extends Transaction ...
Run Code Online (Sandbox Code Playgroud)

如果需要,使用@AttributeOverride覆盖两种类型的Transaction对象之间的列名.

更新:我看到你想要将一个@Entity映射到同一个EntityManagerFactory中的两个表......我认为你不能这样做.