为什么我的JPA注释类没有隐式发现?

时间:2010-09-29 07:50:49

标签: java hibernate jpa

我的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 ..为什么?

3 个答案:

答案 0 :(得分:8)

hibernate.archive.autodetection的值是hibernate自动发现的csv元素列表。

请改为尝试:

<property name="hibernate.archive.autodetection" value="class, hbm"/>

进一步阅读

答案 1 :(得分:1)

尝试制作它......就像这样

<property name="hibernate.archive.autodetection" value="class" />   

Documentations

答案 2 :(得分:0)

我认为Hibernate在与persistence.xml相同的代码源中查找类。因此,例如,如果你在一个文件夹中有persistence.xml,而在一个单独的jar中有类,那么Hibernate将无法找到它们。