我有一个Hibernate项目,以及多个实体。 每个实体需要连接多个数据库。 (表1,表2,表3,表4)相同的模式。
这能实现? 或者我需要建立一个独立的实体为每个吗?
我的实体是这个样子
@Entity
public class table1{
@Id
@Column(name="name")
private String name;
@Column(name="age")
private String age;
//getters setters
}
您可以使用同一个实体具有相似的架构不同的数据库,但要创建EntityManager
指向特定的数据库。
下面是persistence.xml中的示例代码
<persistence-unit name="DB_X">
<jta-data-source>java:/OracleDS</jta-data-source>
...
</persistence-unit>
<!-- Other Persistence Units -->
为特定单位创建的EntityManager
@PersistenceContext(unitName="DB_X")
private EntityManager xEM;
@PersistenceContext(unitName="DB_Y")
private EntityManager yEM;
EntityManagerFactory的电动势= Persistence.createEntityManagerFactory(persistenceUnitName来); EntityManager的EM = emf.createEntityManager();
之后,您可以使用相同的实体,具有类似的模式,用适当的表结构不同数据库EntityManager
。
编辑 :根据您的意见,从你已经张贴的问题不同,看来你要使用同一个实体的多个表。 下面是它的示例代码。
@MappedSuperClass
public class abstract BaseEntity {
@Id
@Column(name="name")
private String name;
@Column(name="age")
private String age;
//-- accessor methods
}
@Entity
@Table(name = "XTable")
public class XEntity extends BaseEntity {
public XEntity(){}
}
@Entity
@Table(name = "YTable")
public class YEntity extends BaseEntity {
public YEntity(){}
}
在这里, XEntity
& YEntity
相似,但指向它们各自的表。