Я ссылался на SO вопросы, связанные с org.hibernate.MappingException: неизвестная сущность, но ни одна из них не отвечает на мою проблему.
У меня есть сущность со следующими 2 атрибутами (среди прочих):
@Column(name="rollno", nullable=false, updatable=false)
protected String rollno;
@ManyToOne(fetch=FetchType.LAZY) // 1:1 must be n:1 in order for @JoinFormula to work!
@JoinFormula(value="crypto.decrypt(rollno)", referencedColumnName="rollno")
@Generated(GenerationTime.ALWAYS)
protected Student student;
Это работает в Java 6. Тот же код и библиотеки гибернации на Java 8 терпят неудачу во время создания sessionFactory со следующей ошибкой:
weblogic.application.ModuleException: org.hibernate.MappingException: Unknown entity: com.bean.entity.Insuredperson:org.hibernate.MappingException:Unknown entity: com.bean.entity.Insuredperson
at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:810)
at org.hibernate.internal.SessionFactoryImpl.getIdentifierType(SessionFactoryImpl.java:939)
at org.hibernate.type.EntityType.getIdentifierType(EntityType.java:553)
at org.hibernate.type.EntityType.getIdentifierOrUniqueKeyType(EntityType.java:593)
at org.hibernate.type.ManyToOneType.requireIdentifierOrUniqueKeyType(ManyToOneType.java:112)
Truncated. see log file for complete stacktrace
>
<Dec 11, 2018 2:42:25,696 PM CET> <Error> <Console> <BEA-240003> <Administration Console encountered the following error: weblogic.application.ModuleException: org.hibernate.MappingException: Unknown entity: com.bean.entity.Student.hibernate.MappingException:Unknown entity: com.bean.entity.Student
at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:810)
at org.hibernate.internal.SessionFactoryImpl.getIdentifierType(SessionFactoryImpl.java:939)
at org.hibernate.type.EntityType.getIdentifierType(EntityType.java:553)
at org.hibernate.type.EntityType.getIdentifierOrUniqueKeyType(EntityType.java:593)
at org.hibernate.type.ManyToOneType.requireIdentifierOrUniqueKeyType(ManyToOneType.java:112)
at org.hibernate.type.ManyToOneType.getColumnSpan(ManyToOneType.java:108)
at org.hibernate.tuple.entity.EntityMetamodel.create(EntityMetamodel.java:444)
at org.hibernate.tuple.entity.EntityMetamodel.buildGenerationStrategyPair(EntityMetamodel.java:410)
at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:246)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:518)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:124)
at sun.reflect.GeneratedConstructorAccessor1041.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:96)
at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:77)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:356)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:423)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:711)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:727)
at org.springframework.orm.hibernate5.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:511)
at org.springframework.orm.hibernate5.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:495)
В нем говорится, что объект Student не существует.Однако, если я удаляю аннотацию @Generated из атрибута student, sessionFactory без проблем создается на java 8.
Версия Hibernate: 5.1.15.