JPA Entity 기본값

대휘·2023년 9월 20일
0

JPA Entity를 작성할 때, 단순히 private String name = “default”; 와 같이 기본값을 지정하면 객체 생성 시, 기본값이 설정되지 않는다.

1. @Builder.Default

해당 엔티티 객체가 생성되어 영속성 컨텍스트에서 관리 될 때, 기본값이 지정되는 방식이다.

2. @ColumnDefault

Auto Create로 테이블을 생성할 때, DDL을 통해 기본값이 설정되는 방식이다.

@ColumnDefault 사용 시 주의점

위의 어노테이션은 엔티티 생성 또는 삽입 시 기본값을 설정해 주는 것이 아니라, JPA가 테이블을 생성할 때 실행하는 쿼리문에 Deafault 값을 지정해 주는 것이다. 따라서 @DynamicInsert / @DynamicUpdate 어노테이션을 함께 사용해야 DB에 잘못된 값(null or else)이 삽입되는 것을 막을 수 있다.

e.g. boolean 타입을 사용할 때
⇒ Java에서 클래스 멤버변수의 자료형이 boolean이면 기본적으로 fasle로 초기화된다.
⇒ 이 경우 Table의 default 값은 true 일지라도, 엔티티 객체를 생성함과 동시에 변수에 false 값이 할당되므로, save 과정에서 false 값이 DB에 저장되게 된다.

profile
학생

0개의 댓글