728x90
public class UserImageManage {
@Id
@EqualsAndHashCode.Include
private Integer id;
...
@Fetch(FetchMode.SELECT)
@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "user_image_mapping", joinColumns = @JoinColumn(name = "user_image_manage_id", referencedColumnName = "id"))
@MapKeyColumn(name = "user")
@Column(name = "image")
private Map<Integer, Integer> userImageMap = new HashMap<>();
...
}
@MapKeyColumn : Key에 사용될 컬럼
@Column : Value에 사용될 컬럼
Value에 List 데이터를 사용할 수도 있는데
@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "user_image_mapping", joinColumns = @JoinColumn(name = "user_image_manage_id", referencedColumnName = "id"))
@MapKeyJoinColumn(name = "user")
@Column(name = "image")
@Convert(converter = IntegerListToStringConverter.class, attributeName = "value")
private Map<Integer, List<Integer>> userImageMap = new HashMap<>();
@MapKeyColumn 이 아닌 @MapKeyJoinColumn을 사용해줘야 하고,
Value에 들어갈 데이터를 @Convert를 이용해 나열된 문자열로 변환하고 저장하면 됩니다.
박준호 / 선임연구원
Junho Park / 서비스R&D팀
728x90
'Spring Boot' 카테고리의 다른 글
MariaDB Trigger 추가할 때 SQL syntax 에러 해결 (0) | 2023.04.28 |
---|---|
[Java] 모두 null 인지, null이 하나라도 존재하는 지 체크 (ObjectUtils) (0) | 2022.11.04 |
[Spring Security] Multi Tenancy 환경에 Remember Me 적용하기 (0) | 2022.10.05 |
[Spring Security] Run-As로 임시 권한 부여하기 (0) | 2022.08.19 |
hikariCP 커넥션 누수 탐지 및 QueryDsl의 transform 커넥션 누수 이슈 해결 (0) | 2022.08.12 |