加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 16:25:24 所属栏目:Java 来源:网络整理
导读:我目前坚持似乎是一个非常简单的问题,但我似乎找不到方法: 我有两个相同的表: tbl_creditcard_approved_txns tbl_creditcard_declined_txns 两者中的字段是相同的,我有一个类 – 用于表示表中所有相应字段的事务. 我试图将两个不同的实体(每个表一个)映射
我目前坚持似乎是一个非常简单的问题,但我似乎找不到方法:

我有两个相同的表:

> 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中的两个表…我不认为你可以这样做.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读