如何将2个相同的表(相同的属性)映射到1个实体

请帮我解决这个问题。

我有2个相同的表,一个是时间表,另一个是timetable_bk。这两个表具有相似的属性或字段。现在,我想将2个表映射到一个实体类(alltimetable)。

我已经尝试过Inheritance.TABLE_PER_CLASS策略,但是当我从AllTimetable查询使用时。它什么也没返回。

请帮我。我搜索了很多次,但是还没有得到答案。

最好的祝福。

回答:

要将两个相同的表映射到一个类,您需要使用Hibernate或NHibernate的entity-name属性。文档在这里:

http://docs.jboss.org/hibernate/core/3.2/reference/en/html/mapping.html#mapping-

entityname

例如,要将单个类Order映射到Order和OrderHistory表,您可以创建一个映射文件,使用新的实体名称将订单类映射到两个表,如下所示:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">

<class name="DomainModel.Order, DomainModel"

table="Orders" entity-name="Order">`

<id name="_id" access="field" column="OrderId">

<generator class="assigned"/>

</id>

<property name= ...>

</class>

<class name="DomainModel.Order, DomainModel"

table="OrderHistories" entity-name="OrderHistory">

<id name="_id" access="field" column="OrderId">

<generator class="assigned"/>

</id>

<property name= ...>

</class>

</hibernate-mapping>

然后根据所需的实体类型,调用适当的会话方法,如下所示:

_session.Save("Order", myOrder)

要么

_session.Save("OrderHistory", myOrder)

通常,实体名称必须在所有Hibernate调用中替换类名称。

以上是 如何将2个相同的表(相同的属性)映射到1个实体 的全部内容, 来源链接: utcz.com/qa/415458.html

回到顶部