Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » EclipseLink » Empty MetaModel when using EclipseLink 2.7.4(EclipseLink 2.7.4 using Criteria API)
Empty MetaModel when using EclipseLink 2.7.4 [message #1808823] Tue, 02 July 2019 11:47
Hui Jessie is currently offline Hui JessieFriend
Messages: 2
Registered: June 2019
Junior Member
My application has a composite persistence unit mainPU which contains 2 members (queryPU and entityPU). When using Criteria API in EclipseLink 2.5, it did not have any problem. However, when upgrading to EclipseLink 2.7, it got error "No [EntityType] was found for the key class [XXX] in the Metamodel" where XXX is the class defined in entityPU

I have some observation regarding the issue:



  1. This problem only occurred when using Criteria API, and there is no problem when using JPQL.
  2. By default, my application load the mainPU. If I try to get the meta model, it always return empty list. If I explicitly load the EntityManagerFactory with entityPU in a DAO, then it can load the full list of EntityType, and the problem gone!


EntityManagerFactory factory = Persistence.createEntityManagerFactory("entityPU");

Metamodel m2 = factory.getMetamodel(); //m2 return a list of EntityType!


Is there any wrong configuration in my application for the EclipseLink 2.7?

Below show the persistence.xml

mainPU
<?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="mainPU" transaction-type="JTA">

    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <jta-data-source>java:jboss/datasources/appds</jta-data-source>  
    <jar-file>icms-entity-lib-0.2.9.544.jar</jar-file>
    <jar-file>../icmshrnmc-ejb.jar</jar-file>

    <properties>
        <property name="jboss.entity.manager.jndi.name" value="java:jboss/persistence/mainPU" />
        <property name="eclipselink.target-database"
            value="org.eclipse.persistence.platform.database.oracle.Oracle11Platform" />
        <property name="eclipselink.target-server" value="JBoss" />
        <property name="eclipselink.composite-unit" value="true" />
        <property name="eclipselink.session.customizer"
            value="x.y.ejb.dao.entity.DefaultEntityInterceptor" />
            <property name="eclipselink.logging.level" value="ALL" />
        <property name="eclipselink.deploy-on-startup" value="true"/>
    </properties>  

</persistence-unit>    



queryPU
<?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="queryPU" transaction-type="JTA">

    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <jta-data-source>java:jboss/datasources/appds</jta-data-source>

    <mapping-file>x/y/icmshrnmc/model/common/dao/namedquery/HrnNat.orm.xml</mapping-file>
    ... 
    ... 
    ... 


    <properties>
        <property name="eclipselink.composite-unit-member" value="true" />
    </properties>
</persistence-unit>    



entityPU
<?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="entityPU" transaction-type="JTA">

<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>java:jboss/datasources/appds</jta-data-source>
<non-jta-data-source>java:jboss/datasources/appds</non-jta-data-source>


<mapping-file>x/y/fmk/model/application/dao/entity/AuditEntity.orm.xml</mapping-file>
... 
... 
... 


<shared-cache-mode>NONE</shared-cache-mode>
<properties>

    <property name="eclipselink.jdbc.sequence-connection-pool" value="true" />
    <property name="eclipselink.jdbc.sequence-connection-pool.non-jta-data-source" value="java:jboss/datasources/fmkseqds" /> 
</properties>
Previous Topic:Redeploy problem.
Next Topic:java.lang.IllegalStateException: Could not load the JPQL parser class.
Goto Forum:
  


Current Time: Fri Jun 02 23:21:08 GMT 2023

Powered by FUDForum. Page generated in 0.01157 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top