我有两个表:TaTb。它们具有完全相同的表结构,但表名称不同。

我尝试创建一个实体类来映射表结构。我的一些常见应用程序模块将使用该实体类基于参数动态查询和更新TaTb。可以在JPA中完成吗?如何编写程序以在运行时将实体类动态映射到不同的表?

最佳答案

不确定您可以完全按照自己的意愿进行操作,但是可以使用继承来产生相同的结果。

AbsT具有所有字段,但没有@Table批注

Ta和Tb继承于AbsT,每个都有@Table批注

利用

@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)

在AbsT。

样例代码:
@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class abstract AbsT {
    @Id Long id;
...
}

@Entity
@Table(name = "Ta")
public class Ta extends AbsT {
...
}

@Entity
@Table(name = "Tb")
public class Tb extends AbsT {
...
}

关于java - JPA,如何使用相同的类(实体)来映射不同的表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/997203/

10-10 14:53