Specifying schema in orm mapping file causes AssertionFailure (table not found) in JoinedSubclassEntityPersister

Description

I have created a JPA orm mapping file for an entity hierarchy using the JOINED inheritance strategy. In the mapping file, I specify the default schema like this:

{{
<entity-mappings xmlns="http://xmlns.jcp.org/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence/orm
http://xmlns.jcp.org/xml/ns/persistence/orm_2_1.xsd"
version="2.1">

<schema>fim</schema>

......
}}

Everything works fine until I migrate to Hibernate higher than 5.0.1, up to 5.0.7 which is bundled in Wildfly 10 at the moment.

When deploy the application to Wildfly 10, I got the following error:

13:58:04,770 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool – 164) MSC000001: Failed to start service jboss.persistenceunit."fim-manager-webapp-1.0-SNAPSHOT.war#FimPu-jta-mysql": org.jboss.msc.service.StartException in service jboss.persistenceunit."fim-manager-webapp-1.0-SNAPSHOT.war#FimPu-jta-mysql": javax.persistence.PersistenceException: [PersistenceUnit: FimPu-jta-mysql] Unable to build Hibernate SessionFactory
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:172)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:117)
at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:667)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:182)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jboss.threads.JBossThread.run(JBossThread.java:320)
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: FimPu-jta-mysql] Unable to build Hibernate SessionFactory
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:954)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:882)
at org.jboss.as.jpa.hibernate5.TwoPhaseBootstrapImpl.build(TwoPhaseBootstrapImpl.java:44)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:154)
... 7 more
Caused by: org.hibernate.MappingException: Could not instantiate persister org.hibernate.persister.entity.JoinedSubclassEntityPersister
at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:112)
at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:77)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:346)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:444)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:879)
... 9 more
Caused by: org.hibernate.AssertionFailure: Table fim.ASC_FEED_ENTRY not found
at org.hibernate.persister.entity.AbstractEntityPersister.getTableId(AbstractEntityPersister.java:5107)
at org.hibernate.persister.entity.JoinedSubclassEntityPersister.<init>(JoinedSubclassEntityPersister.java:433)
at sun.reflect.GeneratedConstructorAccessor89.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:96)
... 13 more

The workaround is removing <schema> elements for these entities in the inheritance hierarchy from the mapping file. For other entities, they work fine with or without <schema>.

Activity

Show:

Andrea BorieroFebruary 2, 2016 at 9:36 AM

Hi ,

from 5.X with MySQL catalog should be used instead of schema.

Rejected

Details

Assignee

Reporter

Components

Priority

Created February 2, 2016 at 6:21 AM
Updated February 4, 2016 at 2:39 PM
Resolved February 4, 2016 at 2:39 PM