2017-05-17 7 views
0

를 사용하는 동안 멀리 간다, 내가 여기에이 주제에 대한 거의 모든 질문에 겪었 하지만 그들 중 누구도매핑 예외 <code>@ElementCollection</code></p> <p>오류를 사용하는 동안 나는 최대 절전 모드에서 매핑 예외를 얻고있다 @ElementCollection

다음

는 Entity 클래스 아래

@Entity 
public class UserDetails { 

    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    @Column(name="ID") 
    int id; 

    @Column(name="NAME") 
    String name; 

    @Column(name="ADDRESS") 
    String address; 

    @ElementCollection(targetClass=String.class) 
    @CollectionTable(name="HOBBIES",[email protected](name="ID")) 
    @Column(name="HOBBIES") 
    List<String> hobbies; 

    @Column(name="INTEREST") 
    String interest; 

내 문제가 해결되지하면 관련 로그 메시지

입니다 0
Caused by: org.hibernate.MappingException: Could not determine type for: java.util.List, for columns: [org.hibernate.mapping.Column(HOBBIES)] 
    at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:266) 
    at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:253) 
    at org.hibernate.mapping.Property.isValid(Property.java:185) 
    at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:410) 
    at org.hibernate.mapping.RootClass.validate(RootClass.java:192) 
    at org.hibernate.cfg.Configuration.validate(Configuration.java:1099) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1284) 
    at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859) 
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:860) 
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:779) 
    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) 
    ... 82 more 

라이브러리에서 jpa 버전을 정확히 찾을 수 없어서 pom.xml을 공유하고 있습니다.

다음은 내 현재 pom.xml 내 마지막에 아래에 추가 한 hibernate

 <!-- Hibernate resources --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>5.1.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>4.3.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-commons-annotations</artifactId> 
      <version>3.3.0.ga</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-annotations</artifactId> 
      <version>3.3.1.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>3.3.2.GA</version> 
     </dependency> 


     <dependency> 
      <groupId>org.hibernate.javax.persistence</groupId> 
      <artifactId>hibernate-jpa-2.1-api</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 

에 모두 작동하지, 내가 5.1.0.Final3.6.7.Final에서 hibernate-entitymanager 버전을 변경 한

 <dependency> 
      <groupId>org.hibernate.javax.persistence</groupId> 
      <artifactId>hibernate-jpa-2.1-api</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 

시도이다.

+0

jpa/hibernate 버전을 사용하고 계십니까? ElementCollection의 가져 오기 라이브러리를 공유하십시오. –

+0

@KhalilM 질문을 업데이트했습니다. –

+0

로컬 컴퓨터에서 코드를 실행했는데 제대로 작동합니다! 나는'hibernate-core : 5.0.11','hibernate-entitymanager : 5.0.11' 및'hibernate-jpa-2.1-api'' 1.1.0 Final을 사용하고 있습니다. –

답변

0

Spring 3에서 사용했을 때 최대 절전 모드 종속성에 문제가 있음이 드러났습니다. 몇 가지 발견 결과를 얻은 후에 아래의 의존성을 생각해 냈고 모든 것이 예상대로 작동하고있었습니다.

<dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>3.6.10.Final</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate.javax.persistence</groupId> 
     <artifactId>hibernate-jpa-2.1-api</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-annotations</artifactId> 
     <version>3.5.6-Final</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate.common</groupId> 
     <artifactId>hibernate-commons-annotations</artifactId> 
     <version>4.0.5.Final</version> 
    </dependency> 

    <!-- For java.lang.ClassNotFoundException : javassist.util.proxy.MethodFilter --> 
    <dependency> 
     <groupId>javassist</groupId> 
     <artifactId>javassist</artifactId> 
     <version>3.12.1.GA</version> 
    </dependency>