티스토리 뷰
list형 json
custom converter 사용
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import javax.persistence.AttributeConverter; import java.io.IOException; import java.util.List; public class StringListConverter implements AttributeConverter<List, String> { private static final ObjectMapper mapper = new ObjectMapper() .configure(DeserializationFeature.FAIL\_ON\_UNKNOWN\_PROPERTIES, false) .configure(DeserializationFeature.FAIL\_ON\_NULL\_FOR\_PRIMITIVES, false); @Override public String convertToDatabaseColumn(List<String> attribute) { try { return mapper.writeValueAsString(attribute); } catch (JsonProcessingException e) { throw new IllegalArgumentException(); } } @Override public List<String> convertToEntityAttribute(String dbData) { try { return mapper.readValue(dbData, List.class); } catch (IOException e) { throw new IllegalArgumentException(); } } }
엔티티에 json column 정의하기
@Getter @Entity @Table(name = "favorites") @Builder @AllArgsConstructor(access = AccessLevel.PROTECTED) @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Favorites { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; @Convert(converter = StringListConverter.class) @Column(columnDefinition = "json") private List<String> tickerList; }
'spring boot > snippets' 카테고리의 다른 글
Spying 하는 방법 (0) | 2021.12.22 |
---|---|
mocking 하는 방법 (0) | 2021.12.22 |
entity에 enum list 정의하기 (0) | 2021.12.22 |
jpa repository만 테스트 (0) | 2021.12.22 |
jpa entity에서 column 정의 (0) | 2021.12.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday