Java 8 Hibernate org.hibernate.MappingException: неизвестный объект: - PullRequest
0 голосов
/ 05 июня 2019

Я ссылался на 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.

1 Ответ

1 голос
/ 05 июня 2019

Hibernate 5.2 и более поздние версии требуют как минимум Java 1.8 и JDBC 4.2. Hibernate 5.1 и более ранние версии требуют как минимум Java 1.6 и JDBC 4.0.

из здесь

пытаетесь обновить свою спящую версию до 5.2 после использования Java 1.8?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...