@DynamicInsert

0

JPA

목록 보기
6/15

  • @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를 주면 된다.
  • 근데 이 때, DB를 보면 @DynamicInsert를 넣어도 값이 들어가게 되는데 이는
    a_3에 설정해놨던 @CreationTimestamp@DynamicUpdate보다 우선순위가 세서 @DynamicInsert를 해도 값을 넣는다고 인식해버린다. 그래서 null로 넣고싶으면 @CreationTimestamp는 주석처리해놓고 사용해야함.
profile
백엔드를 공부하고 있습니다.

0개의 댓글