Hibernate查询与实体名称(Hibernate Query with entity-name)

2019-10-17 11:07发布

我使用的是POJO定义两个表(主备)。 这两个XML类是指的同一个Java类。

参考: 在Hibernate XML映射文件相同的映射POJO到多个表

<hibernate-mapping>
    <class name="com.mypackage.model.Table1" table="Table1" entity-name="Table1">
        <id name="Id" type="java.lang.Long">
            <column name="ID" />
            <generator class="identity" />
        </id>
        <property name="name" type="string">
            <column name="NAME" length="20" />
        </property>
        <property name="age" type="int">
            <column name="AGE" />
        </property>
    </class>

    <class name="com.mypackage.model.Table1" table="Table2" entity-name="Table2">
        <id name="Id" type="java.lang.Long">
            <column name="ID" />
            <generator class="identity" />
        </id>
        <property name="name" type="string">
            <column name="NAME" length="20" />
        </property>
        <property name="age" type="int">
            <column name="AGE" />
        </property>
    </class>
</hibernate-mapping>

POJO认定中:

public class Table1 implements Serializable {

    private static final long serialVersionUID = -594654774484987124L;

    private Long id;
    private String Name;
    private int Age;
// Getters and setters.... Removed...
}

我可以创建不同的表。 而且还使用

   session.saveOrUpdate(entityName, myObject)

API我能够添加新的单独记录这些表。

虽然检索,我使用HQL

Query query = session.createQuery("from Table1");
list = query.list();

它返回我的表1和表2为所有记录。 如果我试着给表2,则误差为显示“表2未映射”

是否有任何仅仅从表1和表2分别retrive记录。

Answer 1:

添加属性polymorphism="explicit"到乌尔班标签。

代码:

 <class name="com.mypackage.model.Table1" table="Table1" entity-name="Table1" polymorphism="explicit">


文章来源: Hibernate Query with entity-name