hibernate配置文件中映射标记的问题

时间:2009-11-03 18:52:48

标签: hibernate orm

我正在使用hibernate注释,当我关注时,一切正常

sessionFactory = new AnnotationConfiguration()
                                .addPackage("istreamcloudframework.objectmodel.member")
                                .addAnnotatedClass(User.class)
     .buildSessionFactory();

但我想避免以这种方式指定所有类,所以我尝试以下列方式将其转换为hibernate配置文件,


    mapping package="istreamcloudframework.objectmodel.member"
    mapping class="istreamcloudframework.objectmodel.member.User"

我收到以下错误,


org.hibernate.MappingException: Unknown entity: istreamcloudframework.objectmodel.member.User

这里出了什么问题?

P.S:我检查了所有的注释导入,而不是org.hibernate.annotations.Entity。我正在使用javax.persistence。导入; *

1 个答案:

答案 0 :(得分:1)

您必须使用AnnotationConfiguration实例来处理包含您的配置的XML文件,但您应该能够在那里指定您的类。有关详细信息,请参阅Hibernate Annotations documentation

<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
  <session-factory>
    <mapping package="istreamcloudframework.objectmodel.member" />
    <mapping class="istreamcloudframework.objectmodel.member.User" />
  </session-factory>
</hibernate-configuration>

创建会话工厂:

SessionFactory sessionFactory = new AnnotationConfiguration()
 .configure().buildSessionFactory();

另请注意,除非您有包级别的注释,否则不必映射包(这样做不会映射所述包中的类)。