【发布时间】: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