Open jaeuk520 opened 4 months ago
DB에 값을 insert 하고 select 하는 과정을 test하는 도중 AttributeConverter가 제대로 호출되지 않는 것을 발견함
AttributeConverter
@Converter(autoApply = true)
@Enumerated(EnumType.ORDINAL) // 제거 @Convert(converter = RequestStateConverter.class) // 등록 @Converter(autoApply = true) // 제거
Enum
@Enumerated(EnumType.ORDINAL) // 제거 @Convert(converter = RequestStateConverter.class) // 제거 @Converter(autoApply = true) // 등록
결론: Enumerater나 Temporal로 mapped된 프로퍼티에는 Converter를 등록해서는 안 된다!
이러한 어노테이션들은 이미 어떠한 conversion이 발생해야 하는지를 선언하고 있기 때문이다. 따라서 Enum이나 date/time을 위한 Converter를 커스텀하고자 한다면 Enumerater나 Temporal 어노테이션을 사용하지 않아야 한다.
conversion
Converter
https://stackoverflow.com/questions/42374051/converterautoapply-true-not-working
DB에 값을 insert 하고 select 하는 과정을 test하는 도중
AttributeConverter
가 제대로 호출되지 않는 것을 발견함AttributeConverter
에는@Converter(autoApply = true)
로 글로벌하게 호출될 수 있도록 되어 있었음.💣 Trouble Shooting
Enum
타입에 개별적으로 등록해주었더니AttributeConverter
가 정상적으로 작동함AttributeConverter
가 글로벌하게 호출될 수 있도록 다시@Converter(autoApply = true)
를 등록함Enum
타입에는 어떠한 어노테이션도 붙이지 않음결론: Enumerater나 Temporal로 mapped된 프로퍼티에는 Converter를 등록해서는 안 된다!
이러한 어노테이션들은 이미 어떠한
conversion
이 발생해야 하는지를 선언하고 있기 때문이다. 따라서 Enum이나 date/time을 위한Converter
를 커스텀하고자 한다면 Enumerater나 Temporal 어노테이션을 사용하지 않아야 한다.Ref
https://stackoverflow.com/questions/42374051/converterautoapply-true-not-working