-
[배운점] @ElementCollectionHealth-Genie 2023. 11. 24. 21:35728x90
해당 애노테이션은 값 타입의 컬렉션을 사용할 때 사용하는 애노테이션입니다.
RDB는 컬렉션 같은 형태의 데이터를 컬럼에 저장할 수 없기에, 별도의 테이블을 생성해 관리합니다
엔티티에서 기본타입으로 켈렉션을 만드려고 할때 에러가 발생했습니다.
List<String> part = new ArrayList<>();
이런식으로 사용하니 "'기본' 타입 속성의 컨테이너가 될 수 없다" 라는 에러가 납니다
위에 설명 했듯이 컬렉션 같은 형태의 데이터를 컬럼에 저장할 수 없기에 나타나는 에러인데, 아래와 같이 작성하면 해결이 됩니다..
@ElementCollection private List<String> part = new ArrayList<>();
이렇게 해서 @Entity가 아닌 Basic type 이나 Embeddable class로 정의된 컬렉션을 테이블로 생성해 OneToMany 관계로 다룹니다.
아래는 postman에서 데이터를 넣는 방식입니다.
parts : ["어깨", "하체"]
참조
https://ttl-blog.tistory.com/121
'Health-Genie' 카테고리의 다른 글
[주의점] 변경감지 (2) 2023.11.28 [인텔리제이 오류] build.gradle이 이유없이 빨간줄이 뜬다! (0) 2023.11.28 [error] Data truncation : Data too long for column (2) 2023.11.22 [이미 사용중인 포트 넘버] Port number was already in use 해결하기 (2) 2023.11.21 [error] No enum constant enum명.값 해결방법 (2) 2023.11.21