这是否意味着,我们可以在 HQL 中使用与其类名不同的另一个名称?
如:
<class name="package.UserEntity" entity-name="user" ...>
...
而不是像这样使用:
from UserEntity where userId=?
我们可以像这样使用 HQL:
from user where userId=?
最佳答案
根据文档,名称和实体名称的定义是:
name
:持久类或接口(interface)的完全限定 Java 类名。如果缺少此属性,则假定映射是针对非 POJO 实体。
entity-name
:Hibernate3 允许一个类被多次映射,可能映射到不同的表。
示例:
<hibernate mapping>
<class name="package.UserEntity" entiy-name="User1" table="User1">
<id>.....</id>
<property>....</property>
<property>....</property>
</class>
<class name="package.UserEntity" entiy-name="User2" table="User2">
<id>.....</id>
<property>....</property>
<property>....</property>
</class>
</hibernate mapping>
Session s = SessionFactory.openSession();
List table1List = s.createQuery("FROM User1").list();
List table1List = s.createQuery("FROM User2").list();
关于java - 在 hibernate 中,实体名称属性的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22493344/