2016-03-10 5 views
0

Я использую последнюю springframework DISTO v4.2.5.RELEASE и гибернации v5.0.7.Final когда весна нагрузки EntityManagerFactory я получаю ниже исключениеВесна не может создать EntityManagerFactory после обновления до Hibernate 5.x

Caused by: org.hibernate.HibernateException: Not all named super-types (extends) were found : [com.sample.model.Sample] 
at org.hibernate.boot.model.source.internal.hbm.EntityHierarchyBuilder.buildHierarchies(EntityHierarchyBuilder.java:76) 
at org.hibernate.boot.model.source.internal.hbm.HbmMetadataSourceProcessorImpl.<init>(HbmMetadataSourceProcessorImpl.java:66) 
at org.hibernate.boot.model.source.internal.hbm.HbmMetadataSourceProcessorImpl.<init>(HbmMetadataSourceProcessorImpl.java:40) 
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.<init>(MetadataBuildingProcess.java:142) 
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:141) 
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:847) 
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:874) 
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60) 
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343) 
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319) 

Тот же код работал с v4.2.5.RELEASE и Hibernate v.4.3.10.

Я знаю, что Hibernate изменил основные метаданные здания в v5.x, есть ли что-то в весеннем конфиге JPA/EntityManagerFactory/Hibernate Properties, чтобы заставить его работать с Hibernate 5.x?

@Entity 
@Table(name = "tbl_sample") 
public class Sample extends Auditable { 
    private Long id; 
    @ManyToOne 
    @JoinColumn(name = "relationA", nullable = true) 
    private RelationA relationA; 
    ... etc 
} 

@MappedSuperClass 
public abstract class Auditable extends Persistable { 
    //audit props 
} 

@MappedSuperClass 
public abstract class Persistable { 
    //common props 
} 

Я мог бы в состоянии сузить проблему после включения журнала трассировки, был еще один класс, который расширяет Sample класса и его карту, используя hbm.xml как ниже

<hibernate-mapping package="com.sample.model"> 
    <joined-subclass name="BloodSample" table="tbl_blood_sample" 
    extends="com.sample.model.Sample"> 
    <key column="ID" /> 

    <property name="sampleNo" column="sampleNo"/> 
    etc.... 
</joined-subclass> 

В тот момент, когда я удалил это отношение hbm, он начал работать ... Все еще задаваясь вопросом, почему это происходит сейчас, которое не было в более старой версии спящего режима.

Так что я думаю, что эта проблема не имеет ничего общего с весной, но что-то связанное с гибернацией. Любое понимание?

+0

вы можете показать 'com.sample.model.Sample' – Jens

+0

@Jens обновлен в моем оригинальном посте – Nick

+0

где класс подвергаемый аудит происходит от? – Jens

ответ

0

У меня подобная проблема. Вы пытаетесь класс тег вместо состыкованного подкласса тег в hbm.xml файл

+0

, добавив более подробную информацию, было бы полезно! –

+0

@nhiendat Смена класса в пользу объединенного подкласса? переход на работу класса, поскольку он будет похож на объединенный подкласс? – Nick

+0

Да, я заменил имя класса для объединенного подкласса. Пример: table = "tbl_blood_sample" -> class = "BloodSample" => заменить следующее: nhiendat

 Смежные вопросы

  • Нет связанных вопросов^_^