why my JPA annotated classes are not discovered implicitly?
My persistence.xml looks like:
<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>
Everything works fine. When I'm removing <class> directive I'm getting an exception from EntityManager.find(Abc.class, 1):
java.lang.IllegalArgumentException: Unknown entity: com.XXX.Abc
Looks like hibernate can't discover my annotated classes although I'm using @Entity.. Why?
The value of the hibernate.archive.autodetection is a csv list of elements that are autodiscovered by hibernate.
Try this instead:
<property name="hibernate.archive.autodetection" value="class, hbm"/>
Further Reading
- Hibernate Community Documentation, 2.2.2 - Bootstrapping (has a table with properties documentation)
Try Making it..like this
<property name="hibernate.archive.autodetection" value="class" />   
Documentations
I think that Hibernate looks for classes in the same codesource as the persistence.xml. So, for example, if you have persistence.xml in a folder and classes in a separate jar, Hibernate won't find them.
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论