Java 将两个相同的表(相同的模式…)映射到Hibernate中的相同实体

Java 将两个相同的表(相同的模式…)映射到Hibernate中的相同实体,java,hibernate,Java,Hibernate,我有表1和表2,它们有相同的模式。。。我希望只有一个实体而不是两个(因为字段是相同的)。 在hibernate中如何使用XML映射实现这一点。 所以我的目标是,当我在DAO中进行查询时,如果两个表都映射到同一个实体,DAO如何知道从哪个表中提取 我试图不创建父类,然后创建两个子类 谢谢很抱歉回答晚了。关于stackoverflow,我已经多次回答了这个问题 要将两个相同的表映射到一个实体类上,需要使用Hibernate或NHibernate的实体名称属性 文件如下: 例如,要将单个类Orde

我有表1和表2,它们有相同的模式。。。我希望只有一个实体而不是两个(因为字段是相同的)。 在hibernate中如何使用XML映射实现这一点。 所以我的目标是,当我在DAO中进行查询时,如果两个表都映射到同一个实体,DAO如何知道从哪个表中提取

我试图不创建父类,然后创建两个子类


谢谢

很抱歉回答晚了。关于stackoverflow,我已经多次回答了这个问题


要将两个相同的表映射到一个实体类上,需要使用Hibernate或NHibernate的
实体名称
属性

文件如下:

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

<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>

很简单,不是吗


一般来说,
实体名
必须在所有Hibernate调用中替换类名。

更重要的是,它将写入哪个表?正确,我希望能够读取和写入两个表,使用两个映射文件和一个类。甚至不确定这是否可能。但是,让我问问StackOverflow的专家,看看是否有可能在DAO级别或类似的级别指定该表。另请参阅。谢谢您的参考。我以前看过这些问题。但它们都使用继承。我试图不使用继承和无注释。如果我不调用save方法,并且在事务提交时持久化实体,该怎么办?我的意思是,我想根据order类所属的父实体持久化到不同的表。有没有办法通过注释来实现这一点?找到了答案:
_session.Save("Order", myOrder) 
_session.Save("OrderHistory", myOrder)