Я использую последнюю версию springframework disto v4.2.5.RELEASE и Hibernate v5.0.7.Final, когда Spring загружает EntityManagerFactory, я получаю следующее исключение
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, чтобы он работал с 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, оно начало работать ... Все еще интересно, почему это происходит сейчас, чего не было в более старой версии спящего режима.
Так что я думаю, что эта проблема не имеет ничего общего с весной, а связана с спящим режимом. Любое понимание?
com.sample.model.Sample
- person Jens   schedule 10.03.2016Not all named super-types (extends) were found
- person Jens   schedule 10.03.2016