将两个相同的表(相同的模式…)映射到Hibernate中的同一个实体
我有table1和table2具有相同的模式…我想只有一个实体而不是两个(因为字段将是相同的)。 我如何在使用XML映射的hibernate中实现这一点。 所以我的目标是当我在DAO中查询时,如果两个表都映射到同一个实体,它将如何知道要从哪个表中获取。
我试图不创建父类,然后两个子类。
谢谢
抱歉回复晚了。 我已经在stackoverflow上多次回答了这个问题。
要将两个相同的表映射到一个实体类,您需要使用Hibernate或NHibernate的entity-name
属性。
文档在这里: http : //docs.jboss.org/hibernate/core/3.2/reference/en/html/mapping.html#mapping-entityname
例如,要将单个Order类映射到Order和OrderHistory表,可以创建一个映射文件,使用新的entity-names
( Order
和OrderHistory
)将订单类映射到两个表,如下所示:
`
然后,根据您需要的实体类型,您只需调用适当的Session方法:
_session.Save("Order", myOrder)
要么
_session.Save("OrderHistory", myOrder)
简单,不是吗?
通常, entity-name
必须在所有Hibernate调用中替换类名。
- 遇到了一个已弃用的javax.persistence.spi.PersistenceProvider
- Hibernate双向父/子问题
- Hibernate持久的Dates
- 如何在Hibernate中返回特定类型的列表而不是List ?
- SessionFactory始终为null – Spring + Hibernate
- 为什么使用带有Oracle 10g方言的Hibernate使用JPA创建一个名为hibernate_sequence的序列?
- 可以在另一个查询的结果集上选择HQL吗?
- Spring Boot 1.2.5 Hibernate JPA嵌套了很多对很多关系
- oracle.jdbc.driver.T4CTTIrxd.readBitVector上的java.lang.ArrayIndexOutOfBoundsException(T4CTTIrxd.java:135)