默认情况下,所有实体类名都自动导入到Hibernate查询语言的命名空间,这样就可以在HQL中使用类的非限定名。然而,在给定的SessionFactory中包含有一个以上类名相同但包名不同的类,便会出问题。我们应该把自动导入的功能关闭:

<hibernate-mapping auto-import="false">…</hibernate-mapping>

该项设置只对当前<hibernate-mapping>所包含的<class>子元素有效。

与关闭自动导入功能相反,我们也可以为实体指定别名,甚至可以导入非显式映射的类和接口,这样便可以在多态的HQL查询中直接使用别名。

<hibernate-mapping>
       <import class=”footmark.hibernate.entity.UserInterface”  rename=”ui”/>
</hibernate-mapping>