사용자 도구

사이트 도구


java:jpa:transient

JPA @Transient

  • @Transient 사용 금지
  • 필드에 사용할 경우 시간적 결합(Temporal Coupling)이 발생한다.
  • 객체의 어느 시점에 해당 필드에 값이 존재할 수도 있고 안할 수도 있는데, 이를 보장하기 어렵다.
  • 이로 인해 해당 필드의 값의 존재 여부를 항상 체크해야고 그걸 까먹고 있다가 버그의 원인이 된다.
  • 다만 getter 메소드에 사용하고 해당 메소드에서는 임시 데이터 저장 역할등이 아니고 단순히 getter가 JPA 필드로 매핑하는 것만 방지하는 역할이라면 써도 될것으로 보임.

transient

  • transient Java keyword 는 원칙적으로는 Java Object 직렬화에서 제외하는 키워드이지만 JPA/Hibernate 에서는 @Transient와 동일한 효과를 발생시킨다.

참조

java/jpa/transient.txt · 마지막으로 수정됨: 2021/08/11 22:04 저자 kwon37xi