gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 06:32:41 26 4
gpt4 key购买 nike

请帮我解决这个问题。

我有 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 to 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 方法:
_session.Save("Order", myOrder) 

或者
_session.Save("OrderHistory", myOrder)

等等。一般而言,实体名称必须替换所有 Hibernate 调用中的类名称。

关于hibernate - 如何将 2 个相同的表(相同的属性)映射到 1 个实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5215471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com