【问题标题】:is it possible to maintain the different schema in same entity class是否可以在同一个实体类中维护不同的模式
【发布时间】:2015-11-07 10:36:00
【问题描述】:

我有两个架构(声明和政策)。对于这两种模式,我都使用相同的实体类。 我的问题是,声明架构有城市列,但政策架构确实有城市列。所以如果我通过策略模式使用实体类,我会得到错误。 这是为每个模式更改实体类的唯一方法吗?或者是否可以在同一个实体类中维护不同的模式?

我的实体类:

@Entity
@Table(name = "Table_name")
public class X {

   @Id
   @GeneratedValue(strategy=GenerationType.AUTO)
   @Column(name = "xxx")
   private int xxx;

   @Column(name = "yyy")
   private String yyy;

   @Column(name = "city")
   private String city;      // only claim schema 
 }  

我得到这样的架构,

if(id.startsWith("SW")){
                session = getSWSession();
}
if(id.startsWith("HW")){
                session = getHWSession();
}

【问题讨论】:

  • 如果给定的实体类与 2 个不同的表相关联,那么 Hibernate 将如何知道要刷新到哪个表?
  • 两个表名相同只是架构不同。
  • 您可以使用继承并通过使用@Table(schema = "Schema1") 注解为不同的实体赋予不同的模式。这样,您可以为不同的架构使用不同的列

标签: java hibernate orm hibernate-mapping hibernate-criteria


【解决方案1】:

您需要为不同的架构有两个不同的映射,因此您必须创建两个 java 映射类并使用 Table 注释对它们进行注释以标记每个特定实体的 schema

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-30
    • 2012-05-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    相关资源
    最近更新 更多