我正在将我的项目从Jboss5迁移到Jboss7,并且在实体的Hibernate自动扫描方面存在一些问题。在我的persistence.xml中,如果我单独列出它们:
<class>com.xxx.test.Something</class>
该实体已注册且工作正常。但是,如果我在实体类中使用注释,就像这样:
@Entity
@Table(name="something")
...
我收到一个未知的实体异常。我已经做了很多关于可能的类路径问题的阅读(Is there a way to scan JPA entities not to declare persistent classes in a persistence.xml file?),但这些似乎并不适用于我,因为我的jar中的类路径配置正确,根据上面的线程。
我的xxx.jar包含一个com目录和一个META-INF目录。 com包含具有我的类的子文件夹,META-INF包含persistence.xml(下面列出了我的persistence.xml)
我最终找到了这个 - http://learningviacode.blogspot.com/2013/03/persistencexml.html
说
“JPA声明将在企业环境中自动发现带注释的类,但在独立环境中,我们需要使用元素指定实体”。我目前使用standalone.bat部署我的jboss,所以它似乎解释了我的问题。
我正在研究部署其他批处理文件,我发现了这个: https://docs.jboss.org/author/display/AS7/Operating+modes 说,
“运行独立服务器更适合大多数开发方案。在托管域中可以实现的任何单个服务器配置也可以在独立服务器中实现,因此即使正在开发的应用程序最终将在生产中运行托管域安装,可以使用独立服务器完成很多(可能是大多数)开发。“
这使我相信我确实可以在独立环境中使用注释,假设使用注释的实体注册是服务器配置。
总而言之,我不知道如何继续,或者如何使用注释自动扫描我的实体。
这是我的persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="xxxPersistenceContext">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:jboss/datasources/xxxDS</jta-data-source>
<!-- <class>com.xxx.test.Something</class> -->
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.cache.use_second_level_cache" value="true" />
<property name="hibernate.id.new_generator_mappings" value="false"/>
<property name="hibernate.classloading.use_current_tccl_as_parent" value="false"/>
<property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.archive.autodetection" value="class, hbm" />
</properties>
</persistence-unit>
有关如何让自动扫描为Jboss7工作的任何帮助将不胜感激。谢谢!
请求添加
我正在使用hibernate 4.0.1
Jboss开始记录:https://www.dropbox.com/s/4uiydjw44hwyjer/jboss7-startup.txt?dl=0