【发布时间】:2014-09-07 06:50:00
【问题描述】:
我为我的客户准备了一个抽象类:
@Entity
public class AbstractClientEntity extends AbstractPersonneEntity implements Demarchable {
@Column(name="ID_REFERENT")
private AbstractEmployeEntity referent;
...
具体类如下所示:
@Entity
@DiscriminatorValue(TypePersonne.Values.INVITE)
public class InviteEntity extends AbstractClientEntity implements Invitable {
...
和
@Entity
@DiscriminatorValue(TypePersonne.Values.AUTRE)
public class AutreClientEntity extends AbstractClientEntity {
我为拥有一组 AbstractClientEntity 的员工提供了另一个抽象类:
@Entity
public class AbstractEmployeEntity extends AbstractPersonneEntity {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ID_REFERENT", nullable = false)
private MonitriceEntity monitrice = new MonitriceEntity();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "referent")
private Set<AbstractClientEntity> listeClients = new HashSet<AbstractClientEntity>();
...
问题是当我尝试运行我的网络应用程序时,抛出了这个异常:
org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.hibernate.SessionFactory ch.tupperware.tuppergestion.dao.AbstractDao.sessionFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/config/tupper-servlet.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: Could not determine type for: ch.tupperware.tuppergestion.entity.AbstractEmployeEntity, at table: PERSONNE, for columns: [org.hibernate.mapping.Column(ID_REFERENT)]
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:507)
org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84)
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:283)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1055)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:825)
org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:767)
org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:685)
我不知道如何解决这个问题...
感谢您的帮助
【问题讨论】:
标签: java hibernate collections mapping polymorphism