我的persistence.xml
看起来像是:
<persistence>
<persistence-unit name="test">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>com.XXX.Abc</class>
<properties>
<property name="hibernate.archive.autodetection" value="true" />
..
</properties>
</persistence-unit>
<persistence>
一切正常。当我删除<class>
指令时,我从EntityManager.find(Abc.class, 1)
获得了一个例外:
java.lang.IllegalArgumentException: Unknown entity: com.XXX.Abc
看起来hibernate无法发现我的注释类,虽然我正在使用@Entity
..为什么?
答案 0 :(得分:8)
hibernate.archive.autodetection
的值是hibernate自动发现的csv元素列表。
请改为尝试:
<property name="hibernate.archive.autodetection" value="class, hbm"/>
进一步阅读
答案 1 :(得分:1)
答案 2 :(得分:0)
我认为Hibernate在与persistence.xml相同的代码源中查找类。因此,例如,如果你在一个文件夹中有persistence.xml,而在一个单独的jar中有类,那么Hibernate将无法找到它们。