我目前坚持似乎是一个非常简单的问题,但我似乎找不到方法:
我有两个相同的表:
> tbl_creditcard_approved_txns
> tbl_creditcard_declined_txns
两者中的字段是相同的,我有一个类 – 用于表示表中所有相应字段的事务.
我试图将两个不同的实体(每个表一个)映射到上面的类.在旧世界中,我创建了两个hbm.xml文件,每个表中有一个,并将它们映射到Transaction.然后,我会在持久化期间使用实体名称,以确保对象在正确的表中保持不变,具体取决于具体情况.
目前我试图使用注释来实现相同的功能,但迄今没有运气将2个实体映射到一个类.这是可能的吗
我目前正在使用一种不同的方法,将所有常见的字段(相同的列名称)提取到@MappedSuperClass中,并为超类提供了两个独立的类(每个实体一个)(这些类都是相同的字段具有不同的列名称,如果适用).
解决方法
使用@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 ...
如果需要,使用@AttributeOverride来覆盖两种类型的Transaction对象之间的列名称.
更新:我看到你想映射一个@Entity到同一个EntityManagerFactory中的两个表…我不认为你可以这样做.