【问题标题】:java persistence collection of metamodel types is empty元模型类型的java持久性集合为空
【发布时间】: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


【解决方案1】:

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

事实证明,唯一需要解决的问题是点击 Project > Clean 并在列表中选择 JPA 项目。 在我的例子中,出于某种未知原因,在运行 Generate Tables 命令之间清理项目是必要的。我不知道为什么,但就是这样。高温

【讨论】:

    猜你喜欢
    • 2016-10-14
    • 2020-03-09
    • 1970-01-01
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 2013-11-19
    相关资源
    最近更新 更多