@ColumnDefault("")
: 해당 컬럼의 default value를 지정한다.@ColumnDefault("'NOT_READ'")
insert
시에 컬럼의 value를 넣어주면 안된다. 그러므로 NULL
도 넣어주면 안된다.@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'")
가 적용되는 것을 볼 수 있다!