I have "entity-d" that extends "entity-c" that extends "entity-b" that extends "entity-a". The inheritance goes 4 levels deep, and Hibernate throws an Exception when I start the application. If I remove the last Entity (entity-d) so that it is only 3 levels deep, then the application starts without the Exception.
Here's the exception:
java.lang.ArrayIndexOutOfBoundsException: 2 at org.hibernate.persister.entity.JoinedSubclassEntityPersister.isNullableTable(JoinedSubclassEntityPersister.java:800) at org.hibernate.persister.entity.AbstractEntityPersister.determineSubclassTableJoinType(AbstractEntityPersister.java:3814) at org.hibernate.persister.entity.AbstractEntityPersister.createJoin(AbstractEntityPersister.java:3787) at org.hibernate.persister.entity.AbstractEntityPersister.fromJoinFragment(AbstractEntityPersister.java:3739) at org.hibernate.persister.entity.AbstractEntityPersister.generateSnapshotSelectString(AbstractEntityPersister.java:1791) at org.hibernate.persister.entity.AbstractEntityPersister.doLateInit(AbstractEntityPersister.java:3991) at org.hibernate.persister.entity.AbstractEntityPersister.postInstantiate(AbstractEntityPersister.java:4015) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:481) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:852) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:845) at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:844)
For more detail, see: http://stackoverflow.com/questions/31040108/does-hibernate-have-a-limit-on-extending-inherited-entity-classes
|