====== JPA @Transient ====== * [[https://docs.oracle.com/javaee/7/api/javax/persistence/Transient.html|@Transient]] 사용 금지 * 필드에 사용할 경우 **시간적 결합(Temporal Coupling)**이 발생한다. * 객체의 어느 시점에 해당 필드에 값이 존재할 수도 있고 안할 수도 있는데, 이를 보장하기 어렵다. * 이로 인해 해당 필드의 값의 존재 여부를 항상 체크해야고 그걸 까먹고 있다가 버그의 원인이 된다. * 다만 getter 메소드에 사용하고 해당 메소드에서는 임시 데이터 저장 역할등이 아니고 단순히 getter가 JPA 필드로 매핑하는 것만 방지하는 역할이라면 써도 될것으로 보임. ===== transient ===== * ''transient'' Java keyword 는 원칙적으로는 Java Object 직렬화에서 제외하는 키워드이지만 JPA/Hibernate 에서는 ''@Transient''와 동일한 효과를 발생시킨다. ===== 참조 ===== * [[https://www.baeldung.com/jpa-transient-ignore-field|Ignoring Fields With the JPA @Transient Annotation | Baeldung]]