본문 바로가기

Converter3

@Id와 @Convert가 같이 있을 때 정상 동작하지 않는 이유 문제 상황 Entity에서 테이블의 컬럼이 String 타입인 것을 LocalDate 타입으로 변경하려고 했습니다. 기존에 정의 되어 있는 Converter 구현체가 있었기 때문에 @Convert 어노테이션을 사용해서 적용했는데, 실제로 Converter로 로직을 타지 않고 java.sql.Date 클래스의 valueOf 메서드가 호출되고 있었습니다. java.sql.Date 클래스의 valueOf 메서드는 문자열 날짜 값을 파싱할 때, 날짜 형식이 yyyy-[m]m-[d]d가 아니면, IllegalArgumentException 에러를 던지고 있습니다. 테이블에 저장되어 있는 값이 마침 yyyymmdd로 저장되어 있어서 계속 에러가 발생했습니다. class LocalDateConverter : Attr.. 2021. 8. 16.
Logback JSON 포맷으로 출력하기 의존성 추가 build.gradle 파일에 아래 의존성을 추가한다. compileOnly("ch.qos.logback.contrib:logback-jackson:0.1.5") compileOnly("ch.qos.logback.contrib:logback-json-classic:0.1.5") JsonLayout 설정하기 logback.xml 파일에 로그 메시지를 JsonLayout으로 출력되도록 설정한다. 추가적으로 JacksonJsonFormatter을 설정하면 Json 로그 메시지가 Json Formatter가 적용되어 출력된다. yyyy-MM-dd'T'HH:mm:ss.SSSX Etc/UTC true true 2020. 2. 28.
데이터 암호화를 위한 JPA Attribute Converter User 클래스에서 juminNumber 속성 값을 테이블에 저장할 때 암호화하는 예제입니다. User Entity 생성 @Entity @Table(name = "USER") @DynamicInsert @DynamicUpdate @Getter public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "NAME", length = 50, nullable = false) private String name; @Column(name = "JUMIN_NUMBER", length = 100, nullable = false) @Convert(converter = StringCryp.. 2019. 6. 10.