java持久化元模型类型集合为空

问题描述 投票:0回答:1

将我的 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>  

因此,我的数据库表未创建。

请帮助我理解这个问题。因为我无法理解其根本原因。

eclipselink persistence.xml jpa-2.1
1个回答
0
投票

对于像我一样遇到这个问题的人:我刚刚在 Eclipse 2020-06 中运行 JPA 工具 > 从实体生成表时遇到了这个问题,这种情况可能与问题中的情况不同,尽管有一个完全相同的错误消息。

事实证明,解决这个问题唯一需要做的就是点击 Project > Clean 并在列表中选择 JPA 项目。 在我的情况下,由于某些未知原因,在运行“生成表”命令之间需要清理项目。我不明白为什么,但事情就是这样。 HTH

© www.soinside.com 2019 - 2024. All rights reserved.