|
When having the following hierarchy:
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
class CommunityMember { ... }
@Entity
class Employee extends CommunityMember { ... }
and running this query:
em.createQuery( "from Employee e" ).getResultList();
then an exception is raised:
org.hibernate.MappingException: Unknown entity: null
at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:1096)
at org.hibernate.internal.SessionImpl.instantiate(SessionImpl.java:1379)
at org.hibernate.ogm.loader.impl.OgmLoader.instanceNotYetLoaded(OgmLoader.java:951)
at org.hibernate.ogm.loader.impl.OgmLoader.getRow(OgmLoader.java:854)
at org.hibernate.ogm.loader.impl.OgmLoader.getRowFromResultSet(OgmLoader.java:427)
at org.hibernate.ogm.loader.impl.OgmLoader.doQuery(OgmLoader.java:338)
at org.hibernate.ogm.loader.impl.OgmLoader.doQueryAndInitializeNonLazyCollections(OgmLoader.java:267)
at org.hibernate.ogm.loader.impl.OgmLoader.loadEntity(OgmLoader.java:186)
at org.hibernate.ogm.loader.impl.OgmLoader.loadEntities(OgmLoader.java:204)
at org.hibernate.ogm.query.impl.OgmQueryLoader.entity(OgmQueryLoader.java:124)
at org.hibernate.ogm.query.impl.OgmQueryLoader.listOfEntities(OgmQueryLoader.java:91)
at org.hibernate.ogm.query.impl.OgmQueryLoader.list(OgmQueryLoader.java:76)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:497)
at org.hibernate.ogm.query.impl.OgmQueryTranslator.list(OgmQueryTranslator.java:127)
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1264)
at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:573)
at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:449)
I guess that's a bug in engine that need to be fixed. But even then we still need to append the DTYPE to WHERE clauses generated for MongoDB/Neo4j to restrict on the right sub-type. I don't think that's the case atm.
|