org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements:
# 원인
The Exception is straightforward and says : Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements, so the cause is obvious here and if we take a look at the Hibernate Collection mapping documentation it clearly states that:
에러 메시지 내용을 그대로 해석해보면,
@ManyToMany, @OneToMany, @CollectionOfElements annotation은 non collection 객체와 매핑될 수 없다는 의미이다.
나의 경우에는 @OneToMany를 붙여놓고 일반 Java 단일객체를 연결해서 문제가 되었다.
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="PRODUCTID")
Product product;
# 해결
As a requirement persistent collection-valued fields must be declared as an interface type (see Example 7.2, “Collection mapping using @OneToMany and @JoinColumn”). The actual interface might be java.util.Set, java.util.Collection, java.util.List, java.util.Map, java.util.SortedSet, java.util.SortedMap...
Collection 객체인 List 로 바꾸어주었다.
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="PRODUCTID")
List<Product> product;
# 참고자료
'프레임워크 > Spring' 카테고리의 다른 글
[ 의문점 데이터 ] Maven to Gradle : Maven Dependency 설정 Gradle로 옮기기 (0) | 2021.08.07 |
---|---|
[ 의문점 데이터 ] Spring 프로젝트 네이밍 Group, Artifact, Version (0) | 2021.08.05 |
[ 오류데이터 ] Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist: (0) | 2021.06.17 |
[ 의문점 데이터 ] thymeleaf update/create form 재사용 (0) | 2021.06.17 |
[ 의문점 데이터 ] thymeleaf 로 onClick="location.href=*" 속성 지정 (0) | 2021.06.17 |