【问题标题】:Changing Table name dynamiclly in JPA/Hibernate [duplicate]在 JPA/Hibernate 中动态更改表名 [重复]
【发布时间】:2016-05-12 14:35:47
【问题描述】:

我看过一些关于 NamingStrategy 的帖子,但这并不是我要寻找的东西(或者我不知道如何接近它)。

根据某些条件,我需要更改 @Entity 类中传递 ID 的 @Table 的名称,如下所示:

@Entity
@Table(name = "SA1{companyID}")
public class Cliente implements Serializable, Cloneable {

“companyID”将类似于:010、020、030

有什么方法可以实现吗?

【问题讨论】:

  • “动态变化”是什么意思?你想在某个地方改变它并创建一个新的 EMF?
  • 我有这些表 SA1010, SA1030, SA1040 具有相同的结构,具体取决于用户选择的公司(这是只读数据库)是在不同的表上制作的,我想使用相同的实体类。
  • 是的,每个公司都有一个 EMF 吗?还是您想在 EMF 中动态选择表格?!

标签: java hibernate jpa


【解决方案1】:

如果你使用@MappedSuperclass会更好

@MappedSuperclass
class Cliente {

  @Column
  private String xxx;

}

@Entity
class SA1010 extends Cliente { 


}

【讨论】:

  • 谢谢,听起来很有趣,我会试试的
  • 是的,这个答案完美地解决了我的问题。非常感谢我的朋友。
【解决方案2】:

您可以通过实施 NamingStrategy

来做到这一点

请参阅下面对您有帮助的帖子:

How do I configure JPA table name at runtime?

Change Table Name of an Entity on runtime?

Dynamic Naming Table with Hibernate

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 2012-12-05
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 2011-04-06
    相关资源
    最近更新 更多