@DynamicInsert
를 하지 않으면,
a.setA_3
을 하지 않아도 console에 a_3이 뜨고 ? 물음표가 뜨게 됨.
DB에서 a_3를 계속 건드림. 아래와 같이 나옴
insert into a_tbl(a_1, a_2, a_3) values (?, ?, ?)
그런데, @DynamicInsert를 넣고 testInsert()
를 실행하면
insert into a_tbl(a_1, a_2) values (?, ?)
라고 뜨게 되고 쓸데없는 매핑은 하지 않음.
그래서 이걸 왜써야 하나?
- 필요가 없는데 계속 메모리를 낭비, 소모하는 것이므로 최대한 필요없는 컬럼은 건드리지 않는게 중요하다.
- 업데이트 할 때도 마찬가지. @DynamicUpdate를 주면 된다.
@DynamicInsert
를 넣어도 값이 들어가게 되는데 이는@CreationTimestamp
가 @DynamicUpdate
보다 우선순위가 세서 @DynamicInsert
를 해도 값을 넣는다고 인식해버린다. 그래서 null로 넣고싶으면 @CreationTimestamp
는 주석처리해놓고 사용해야함.