본문 바로가기

Web/spring

[Spring Entity] Entity 컬럼 안에 리스트 넣는 방법 두가지

728x90

당연히 안된다

 

 

 

@Entity 에 리스트 값이 들어가야할 일은 굉장히 많다

예를 들면 중복으로 체크된 값을 한몫에 넣는다던가.. 선택지가 여러개라 복수로 값이 담길 때.

 

 

이 방법 저 방법 검색해봤는데,

@Convert 를 이용하는 방법과

@ElementCollection 을 사용하는 방법이 있다.

 

 

 

 

1. @Convert

 

 

 

@Convert
public class StringListConverter implements AttributeConverter<List<String>, String> {
    private static final String SPLIT = ",";

    @Override
    public String convertToDatabaseColumn(List<String> stringList) {
        return String.join(SPLIT, stringList);
    }

    @Override
    public List<String> convertToEntityAttribute(String string) {
        return Arrays.asList(string.split(SPLIT));
    }
}

 

구분 값만 잘 선택해서 넣어주면 될 듯 하다.

 

 

 

 

 

더 간단함!

 

2.ElementCollection

 

@Column(name="column")
@ElementCollection(targetClass=String.class)
private List<String> columns;

 

 

끝:D

728x90