我正在使用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。导入; *
答案 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();
另请注意,除非您有包级别的注释,否则不必映射包(这样做不会映射所述包中的类)。