【发布时间】:2015-03-17 03:30:57
【问题描述】:
在将我的 jpa 项目部署到 Wildfly 服务器时,我收到以下警告:
The collection of metamodel types is empty.
Model classes may not have been found during entity
search for Java SE and some Java EE container managed persistence units.
Please verify that your entity classes are referenced in persistence.xml using
either <class> elements or a global <exclude-unlisted-classes>false</exclude-unlisted-classes> element
我的持久化 xml 看起来像这样
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.1">
<persistence-unit name="primary" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>java:jboss/datasources/example</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
<property name="javax.persistence.schema-generation.create-source" value="metadata"/>
<property name="javax.persistence.schema-generation.drop-source" value="metadata"/>
<property name="eclipselink.target-server" value="JBoss"/>
<property name="eclipselink.weaving" value="static"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/example"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="xxx"/>
</properties>
</persistence-unit>
</persistence>
因此未创建我的数据库表。
请帮助我理解这个问题。因为我无法理解其根本原因。
【问题讨论】:
-
我试过这个link 但没有帮助
-
您确定您的日志消息与您的问题有关吗?您是否尝试过明确列出类而不是依赖 exclude-unlisted-classes 属性来允许扫描类路径中的实体?您还指定了数据源和直接 JDBC 连接详细信息 - 只应使用其中一个。尝试将 EclipseLink 日志设置为最好,并验证您的类是否正确加载。
-
我尝试明确列出类然后它的工作但使用 exclude-unlisted-classes 它没有创建表
-
实体类没有被 eclipselink 识别。可能是什么原因?是否与Wildfly服务器或eclipselink版本有关
标签: eclipselink persistence.xml jpa-2.1