@ColumnDefault() Springboot JPA

Xonic·2021년 8월 4일
1
post-thumbnail

스프링 부트 @ColumnDefault()

  • @ColumnDefault("") : 해당 컬럼의 default value를 지정한다.
  • ex) @ColumnDefault("'NOT_READ'")
  • default value를 수행하려면, SQL insert 시에 컬럼의 value를 넣어주면 안된다. 그러므로 NULL도 넣어주면 안된다.
  • default value 기능을 수행하려면, Method Declare 부근에 @DynamicInsert를 붙여주면, 해당 컬럼이 null일 경우에, insert에서 제외된다!!
@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@ToString(exclude = {"member"})
@DynamicInsert
public class Message {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private Long senderId;
    
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "member_id", nullable = false)
    private Member member;

    private String content;

    @Enumerated(EnumType.STRING)
    @ColumnDefault("'NOT_READ'")
    private MessageStatus status;

간단한 Entity 코드이다.
여기서,
1. @DynamicInsert 을 붙이지 않았을 때

해당 row

2. @DynamicInsert 을 붙였을 때

해당 row

-> 정상적으로 @ColumnDefault("'NOT_READ'")가 적용되는 것을 볼 수 있다!

profile
공부 한 것을 공유하는 블로그입니다.

0개의 댓글