2015-01-14 123 views
0

我正在用ecplise构建一个web applikation。我正在使用Spring和Hibernate。它工作正常,直到我添加了一个包含多余列的关系表的多对多关系。在ServletContext资源中定义名称为'entityManagerFactory'的bean时出错

堆栈跟踪:

161 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml] 
5417 [main] INFO org.springframework.web.context.support.XmlWebApplicationContext - Bean 'myExecutor' is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 
5435 [main] INFO org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 
5435 [main] INFO org.springframework.web.context.support.XmlWebApplicationContext - Bean 'myExecutor' is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 
5498 [main] INFO org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService 'myScheduler' 
5500 [main] INFO org.springframework.web.context.support.XmlWebApplicationContext - Bean 'myScheduler' is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 
5536 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in org.s[email protected]1484fc8d: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,compncompanyDAO,comptcompanyTypeDAO,contycountryDAO,curcycurrencyDAO,descpdescriptionDAO,descpexpfilesDAO,descpexploitationDAO,descpexpnatureDAO,descpexpstatusDAO,descpforegroundDAO,descriptionpropertyDAO,descriptiontypeDAO,fdatyfundingauthorityDAO,foregrpropertyDAO,perfnpersonalfunctionDAO,perslpersonalDAO,phasphaseDTO,planplanDAO,prgrmprogramDAO,projtprojectDAO,propdatatypesDAO,proppropertiesDAO,ptypepartnertypeDAO,ptypeplantypeDAO,relatallpropDAO,relatcompnprojtDAO,relatdescriptionpropertyDAO,relatexpfilesDAO,relatexpnatureDAO,relatfdatypropDAO,relatforegrpropertyDAO,relatperslprojtDAO,relatplandescpDAO,relatplanpropDAO,relatprgrmpropDAO,relatprojtdescpDAO,relatprojtforegrDAO,relatprojtpropDAO,statustatusDAO,reproshipService,org.springframework.scheduling.annotation.internalAsyncAnnotationProcessor,org.springframework.scheduling.annotation.internalScheduledAnnotationProcessor,myExecutor,myScheduler,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,entityManagerFactory,transactionManager]; root of factory hierarchy 
5620 [main] INFO org.springframework.orm.jpa.LocalEntityManagerFactoryBean - Building JPA EntityManagerFactory for persistence unit 'MyPersistenceUnit' 
5713 [main] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.5.2-Final 
5734 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.5.2-Final 
5736 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found 
5741 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist 
5747 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 
6216 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final 
6225 [main] INFO org.hibernate.ejb.Version - Hibernate EntityManager 3.5.2-Final 
6875 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: de.cmt.reproship.shared.dto.PtypePartnerTypeDTO 
6921 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity de.cmt.reproship.shared.dto.PtypePartnerTypeDTO on table ptype_partner_type 
6973 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: de.cmt.reproship.shared.dto.PrgrmProgramDTO 
6973 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity de.cmt.reproship.shared.dto.PrgrmProgramDTO on table prgrm_program 
6988 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: de.cmt.reproship.shared.dto.DescpForegroundDTO 
6989 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity de.cmt.reproship.shared.dto.DescpForegroundDTO on table descp_foreground 
6991 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: de.cmt.reproship.shared.dto.DescpDescriptionDTO 

7025 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: de.cmt.reproship.shared.dto.ContyCountryDTO 
7026 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity de.cmt.reproship.shared.dto.ContyCountryDTO on table conty_country 
7030 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: de.cmt.reproship.shared.dto.RelatPlanPropDTO 
    7315 [main] INFO org.hibernate.cfg.AnnotationConfiguration - Hibernate Validator not found: ignoring 
7357 [main] INFO org.hibernate.validator.util.Version - Hibernate Validator 4.2.0.Final 
7641 [main] INFO org.hibernate.search.Version - Hibernate Search 3.4.0.Final 
7760 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Destroying singletons in org.s[email protected]1484fc8d: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,compncompanyDAO,comptcompanyTypeDAO,contycountryDAO,curcycurrencyDAO,descpdescriptionDAO,descpexpfilesDAO,descpexploitationDAO,descpexpnatureDAO,descpexpstatusDAO,descpforegroundDAO,descriptionpropertyDAO,descriptiontypeDAO,fdatyfundingauthorityDAO,foregrpropertyDAO,perfnpersonalfunctionDAO,perslpersonalDAO,phasphaseDTO,planplanDAO,prgrmprogramDAO,projtprojectDAO,propdatatypesDAO,proppropertiesDAO,ptypepartnertypeDAO,ptypeplantypeDAO,relatallpropDAO,relatcompnprojtDAO,relatdescriptionpropertyDAO,relatexpfilesDAO,relatexpnatureDAO,relatfdatypropDAO,relatforegrpropertyDAO,relatperslprojtDAO,relatplandescpDAO,relatplanpropDAO,relatprgrmpropDAO,relatprojtdescpDAO,relatprojtforegrDAO,relatprojtpropDAO,statustatusDAO,reproshipService,org.springframework.scheduling.annotation.internalAsyncAnnotationProcessor,org.springframework.scheduling.annotation.internalScheduledAnnotationProcessor,myExecutor,myScheduler,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,entityManagerFactory,transactionManager]; root of factory hierarchy 
7769 [main] INFO org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler - Shutting down ExecutorService 'myScheduler' 
7771 [main] ERROR org.springframework.web.context.ContextLoader - Context initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'compncompanyDAO': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: javax.persistence.EntityManagerFactory de.cmt.reproship.server.dao.CompnCompanyDAO.entityManagerFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: MyPersistenceUnit] Unable to build EntityManagerFactory 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:286) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1055) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:562) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:871) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423) 
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:272) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:196) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) 
    at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:543) 
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) 
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220) 
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513) 
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448) 
    at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:468) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 
    at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 
    at org.mortbay.jetty.Server.doStart(Server.java:222) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 
    at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:672) 
    at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509) 
    at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1093) 
    at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:836) 
    at com.google.gwt.dev.DevMode.main(DevMode.java:311) 
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: javax.persistence.EntityManagerFactory de.cmt.reproship.server.dao.CompnCompanyDAO.entityManagerFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: MyPersistenceUnit] Unable to build EntityManagerFactory 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:507) 
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:283) 
    ... 31 more 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: MyPersistenceUnit] Unable to build EntityManagerFactory 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1403) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:825) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:767) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:685) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478) 
    ... 33 more 
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: MyPersistenceUnit] Unable to build EntityManagerFactory 
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:896) 
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48) 
    at org.springframework.orm.jpa.LocalEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalEntityManagerFactoryBean.java:92) 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:308) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1460) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1400) 
    ... 43 more 
Caused by: org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: descp_exploitation, for columns: [org.hibernate.mapping.Column(relexpnature)] 
    at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:291) 

谢谢您的帮助!

我的课:

package de.cmt.reproship.shared.dto; 

import java.io.Serializable; 
import java.util.HashSet; 
import java.util.Set; 

import javax.persistence.CascadeType; 
import javax.persistence.Column; 
import javax.persistence.FetchType; 
import javax.persistence.GeneratedValue; 
import javax.persistence.JoinColumn; 
import javax.persistence.Entity; 
import javax.persistence.Id; 
import javax.persistence.ManyToOne; 
import javax.persistence.OneToMany; 

import static javax.persistence.GenerationType.IDENTITY; 
import javax.persistence.Table; 


@Entity 
@Table(name = "descp_exploitation") 
public class DescpExploitationDTO implements Serializable{ 

    /** 
    * 
    */ 
    private static final long serialVersionUID = -356131095078296285L; 

    public DescpExploitationDTO(){ 
    } 

    public DescpExploitationDTO(long expID, long relcpID, long projtID, long statuID, long foregrID, String expcomment, String expplans, String expactualexp, String expsourcestatusinfo, String descpexploitationcol, ProjtProjectDTO project) { 

     this.expID = expID; 
     this.relcpID = relcpID; 
     this.projtID = projtID; 
     this.statuID = statuID; 
     this.foregrID = foregrID; 
     this.expcomment = expcomment; 
     this.expplans = expplans; 
     this.expactualexp = expactualexp; 
     this.expsourcestatusinfo = expsourcestatusinfo; 
     this.descpexploitationcol = descpexploitationcol; 
     this.project = project; 
    } 

    @Id 
    @GeneratedValue(strategy = IDENTITY) 
    @Column(name = "exp_ID") 
    private long expID; 

    @Column(name = "relcp_ID", nullable = false, length = 30) 
    private long relcpID; 

    @Column(name = "projt_ID", nullable = false, length = 30) 
    private long projtID; 

    @Column(name = "statu_ID", nullable = false, length = 30) 
    private long statuID; 

    @Column(name = "foregr_ID", nullable = false, length = 30) 
    private long foregrID; 

    @Column(name = "exp_comment", nullable = true, length = 50) 
    private String expcomment; 

    @Column(name = "exp_expplans", nullable = true, length = 8000) 
    private String expplans; 

    @Column(name = "exp_actualexp", nullable = true, length = 8000) 
    private String expactualexp; 

    @Column(name = "exp_sourcestatusinfo", nullable = true, length = 8000) 
    private String expsourcestatusinfo; 

    @Column(name = "descp_exploitationcol", nullable = true, length = 50) 
    private String descpexploitationcol; 

    @ManyToOne 
    @JoinColumn(name="projt_ID", insertable =false, updatable =false) 
    private ProjtProjectDTO project; 

    private Set<RelatExpNatureDTO> relexpnature = new HashSet<RelatExpNatureDTO>(0); 


    public long getExpID() { 
     return expID; 
    } 

    public void setExpID(long expID) { 
     this.expID = expID; 
    } 

    public long getRelcpID() { 
     return relcpID; 
    } 

    public void setRelcpID(long relcpID) { 
     this.relcpID = relcpID; 
    } 

    public long getProjtID() { 
     return projtID; 
    } 

    public void setProjtID(long projtID) { 
     this.projtID = projtID; 
    } 

    public long getStatuID() { 
     return statuID; 
    } 

    public void setStatuID(long statuID) { 
     this.statuID = statuID; 
    } 

    public long getForegrID() { 
     return foregrID; 
    } 

    public void setForegrID(long foregrID) { 
     this.foregrID = foregrID; 
    } 

    public String getExpcomment() { 
     return expcomment; 
    } 

    public void setExpcomment(String expcomment) { 
     this.expcomment = expcomment; 
    } 

    public String getExpplans() { 
     return expplans; 
    } 

    public void setExpplans(String expplans) { 
     this.expplans = expplans; 
    } 

    public String getExpactualexp() { 
     return expactualexp; 
    } 

    public void setExpactualexp(String expactualexp) { 
     this.expactualexp = expactualexp; 
    } 

    public String getExpsourcestatusinfo() { 
     return expsourcestatusinfo; 
    } 

    public void setExpsourcestausinfo(String expsourcestatusinfo) { 
     this.expsourcestatusinfo = expsourcestatusinfo; 
    } 

    public String getDescpexploitationcol() { 
     return descpexploitationcol; 
    } 

    public void setDescpexploitationcol(String descpexploitationcol) { 
     this.descpexploitationcol = descpexploitationcol; 
    } 

    public ProjtProjectDTO getProject() { 
     return project; 
    } 

    public void setProject(ProjtProjectDTO project) { 
     this.project = project; 
    } 

    @OneToMany(fetch=FetchType.LAZY, mappedBy = "pk.descpexploitationdto", cascade = CascadeType.ALL) 
    public Set<RelatExpNatureDTO> getRelexpnature() { 
     return relexpnature; 
    } 

    public void setRelexpnature(Set<RelatExpNatureDTO> relexpnature) { 
     this.relexpnature = relexpnature; 
    } 


} 





    package de.cmt.reproship.shared.dto; 

    import static javax.persistence.GenerationType.IDENTITY; 

    import java.io.Serializable; 
    import java.util.HashSet; 
    import java.util.Set; 

    import javax.persistence.CascadeType; 
    import javax.persistence.Column; 
    import javax.persistence.Entity; 
    import javax.persistence.FetchType; 
    import javax.persistence.GeneratedValue; 
    import javax.persistence.Id; 
    import javax.persistence.ManyToMany; 
    import javax.persistence.OneToMany; 
    import javax.persistence.Table; 

    @Entity 
    @Table(name = "descp_exp_nature") 
    public class DescpExpNatureDTO implements Serializable{ 

     /** 
     * 
     */ 
     private static final long serialVersionUID = -4753028274220167848L; 

     public DescpExpNatureDTO(){ 
     } 

     public DescpExpNatureDTO(long expnatureID, String expnaturename){ 
      this.expnatureID = expnatureID; 
      this.expnaturename = expnaturename; 
     } 

     @Id 
     @GeneratedValue(strategy = IDENTITY) 
     @Column(name = "nature_ID") 
     private long expnatureID; 

     @Column(name = "exp_nature_name", nullable = true, length = 150) 
     private String expnaturename; 

     private Set<RelatExpNatureDTO> relexpnature = new HashSet<RelatExpNatureDTO>(0); 



     public long getExpnatureID() { 
      return expnatureID; 
     } 

     public void setExpnatureID(long expnatureID) { 
      this.expnatureID = expnatureID; 
     } 

     public String getExpnaturename() { 
      return expnaturename; 
     } 

     public void setExpnaturename(String expnaturename) { 
      this.expnaturename = expnaturename; 
     } 

     @OneToMany(fetch=FetchType.LAZY, mappedBy = "pk.descpexpnaturedto", cascade = CascadeType.ALL) 
     public Set<RelatExpNatureDTO> getRelexpnature() { 
      return relexpnature; 
     } 

     public void setRelexpnature(Set<RelatExpNatureDTO> relexpnature) { 
      this.relexpnature = relexpnature; 
     } 

    } 


    } 


package de.cmt.reproship.shared.dto; 

import java.io.Serializable; 

import javax.persistence.AssociationOverride; 
import javax.persistence.AssociationOverrides; 
import javax.persistence.Column; 
import javax.persistence.EmbeddedId; 
import javax.persistence.Entity; 
import javax.persistence.Id; 
import javax.persistence.JoinColumn; 
import javax.persistence.ManyToOne; 
import javax.persistence.Table; 
import javax.persistence.Transient; 

@Entity 
@Table(name = "relat_exp_nature") 
@AssociationOverrides({ 
    @AssociationOverride(name = "pk.descpexploitationdto", 
     joinColumns = @JoinColumn(name = "exp_ID")), 
    @AssociationOverride(name = "pk.descpexpnaturedto", 
     joinColumns = @JoinColumn(name = "nature_ID")) }) 
public class RelatExpNatureDTO implements Serializable{ 

    /** 
    * 
    */ 
    private static final long serialVersionUID = -6588800263746481041L; 

    private ExpNatureId pk = new ExpNatureId(); 


    @Column(name = "relcp_ID", nullable = false, length = 20) 
    private long relcpID; 

    @Column(name = "projt_ID", nullable = false, length = 20) 
    private long projtID; 


    @ManyToOne 
    @JoinColumn(name="exp_ID", insertable =false, updatable =false) 
    private DescpExploitationDTO exploitations; 

    @ManyToOne 
    @JoinColumn(name="nature_ID", insertable =false, updatable =false) 
    private DescpExpNatureDTO nature; 

    public RelatExpNatureDTO(){ 

    } 

    @EmbeddedId 
    public ExpNatureId getPk() { 
     return pk; 
    } 

    public void setPk(ExpNatureId pk) { 
     this.pk = pk; 
    } 

    @Transient 
    public DescpExploitationDTO getDescpExploitationDTO() { 
     return getPk().getDescpExploitationDTO(); 
    } 

    public void setDescpExploitationDTO(DescpExploitationDTO exploitation) { 
     getPk().setDescpExploitationDTO(exploitation); 
    } 

    @Transient 
    public DescpExpNatureDTO getDescpExpNatureDTO() { 
     return getPk().getDescpExpNatureDTO(); 
    } 

    public void setDescpExpNatureDTO(DescpExpNatureDTO expnature) { 
     getPk().setDescpExpNatureDTO(expnature); 
    } 


    public long getRelcpID() { 
     return relcpID; 
    } 

    public void setRelcpID(long relcpID) { 
     this.relcpID = relcpID; 
    } 

    public long getProjtID() { 
     return projtID; 
    } 

    public void setProjtID(long projtID) { 
     this.projtID = projtID; 
    } 

    public DescpExploitationDTO getExploitations() { 
     return exploitations; 
    } 

    public void setExploitations(DescpExploitationDTO exploitations) { 
     this.exploitations = exploitations; 
    } 

    public DescpExpNatureDTO getNature() { 
     return nature; 
    } 

    public void setNature(DescpExpNatureDTO nature) { 
     this.nature = nature; 
    } 


    public boolean equals(Object o) { 
     if (this == o) 
      return true; 
     if (o == null || getClass() != o.getClass()) 
      return false; 

     RelatExpNatureDTO that = (RelatExpNatureDTO) o; 

     if (getPk() != null ? !getPk().equals(that.getPk()) 
       : that.getPk() != null) 
      return false; 

     return true; 
    } 


    public int hashCode() { 
     return (getPk() != null ? getPk().hashCode() : 0); 
    } 

} 

package de.cmt.reproship.shared.dto; 

import java.io.Serializable; 

import javax.persistence.Embeddable; 
import javax.persistence.ManyToOne; 

@Embeddable 
public class ExpNatureId implements Serializable{ 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 1750980964547512826L; 

    private DescpExploitationDTO exploitation; 
    private DescpExpNatureDTO expnature; 

    public ExpNatureId(){ 

    } 

    @ManyToOne 
    public DescpExploitationDTO getDescpExploitationDTO() { 
     return exploitation; 
    } 

    public void setDescpExploitationDTO(DescpExploitationDTO exploitation) { 
     this.exploitation = exploitation; 
    } 

    @ManyToOne 
    public DescpExpNatureDTO getDescpExpNatureDTO() { 
     return expnature; 
    } 

    public void setDescpExpNatureDTO(DescpExpNatureDTO expnature) { 
     this.expnature = expnature; 
    } 


    public boolean equals(Object o) { 
     if (this == o) return true; 
     if (o == null || getClass() != o.getClass()) return false; 

     ExpNatureId that = (ExpNatureId) o; 

     if (exploitation != null ? !exploitation.equals(that.exploitation) : that.exploitation != null) return false; 
     if (expnature != null ? !expnature.equals(that.expnature) : that.expnature != null) 
      return false; 

     return true; 
    } 


    public int hashCode() { 
     int result; 
     result = (exploitation != null ? exploitation.hashCode() : 0); 
     result = 31 * result + (expnature != null ? expnature.hashCode() : 0); 
     return result; 
    } 

} 

而且我compncompanyDAO类:

package de.cmt.reproship.server.dao; 

import javax.annotation.PostConstruct; 
import javax.persistence.EntityManagerFactory; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Repository; 

import de.cmt.reproship.shared.dto.CompnCompanyDTO; 

@Repository("compncompanyDAO") 
public class CompnCompanyDAO extends JpaDAO<Long, CompnCompanyDTO> { 

    @Autowired 
    EntityManagerFactory entityManagerFactory; 

    @PostConstruct 
    public void init() { 
     super.setEntityManagerFactory(entityManagerFactory); 
    } 
} 
+0

问题不是来自您的EnityManagerFactory,而是来自compncompanyDAO类。自动布线问题。发布代码和这个类,我们可以帮助你。 –

+0

问题是由于您添加/更改了映射。以下'无法确定类型:java.util.Set,在表descp_exploitation,列:[org.hibernate.mapping.Column(relexpnature)]'告诉你。我怀疑你没有使它成为通用集合,或者它不指向映射的实体。 –

+0

那么,你的意思是我的映射配置不正确?错误应该在relexpnature列中? – nicole

回答

相关问题