티스토리 뷰
entity에 enum list를 정의하고 싶을 때 사용!
1. enum 생성
public enum IndicatorReportType {
ROE, TOTAL_REVENUE, TOTAL_EQUITY
}
2. Converter를 만들고
public class ReportListConverter implements AttributeConverter<List<IndicatorReportType>, 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<IndicatorReportType> attribute) {
try {
return mapper.writeValueAsString(attribute);
} catch (JsonProcessingException e) {
throw new IllegalArgumentException();
}
}
@Override
public List<IndicatorReportType> convertToEntityAttribute(String dbData) {
try {
return mapper.readValue(dbData, new TypeReference<>() {
});
} catch (IOException e) {
throw new IllegalArgumentException();
}
}
}
3. entity에 정의하고 사용!
@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 = ReportListConverter.class)
private List<IndicatorReportType> indicatorReportList;
}
'spring boot > snippets' 카테고리의 다른 글
mocking 하는 방법 (0) | 2021.12.22 |
---|---|
jpa에서 json column 사용하기 (0) | 2021.12.22 |
jpa repository만 테스트 (0) | 2021.12.22 |
jpa entity에서 column 정의 (0) | 2021.12.22 |
n+1 이슈 피하기 (0) | 2021.12.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday