Search

@Transient 어노테이션과 transient 키워드

생성일
2023/08/31 15:04
태그
spring
Database
상태
Done

Java의 transient 키워드

transient 키워드는 자바에서 해당 멤버변수가 직렬화(serialization) 되는 것을 막는다.
프로그램 외부에 노출되지지 않는 멤버변수로, 이 값은 메모리 안에서만 사용되어야 한다는 의미를 가진다.
class Member implemnets Serializable { private String name; private int age; // 직렬화 시 주민번호(id_number)는 내보내지 않겠다는 의미 private triensient String id_number; ... }
Java
복사

JPA 어노테이션 @Transient

@Transient 어노테이션은 해당 필드를 DB 저장하지 않도록 막는다. DB에 영속화 하지 않을 속성이나 필드를 지정해서 사용하며, MappedSuperclass나 Embeddable 클래스에서 사용될 수 있다.
이 역시 DB에 실제로 저장되지 않고 메모리에서만 사용된다는 의미를 가진다.
@Transient가 붙은 필드는 영속화가 불가능하기 때문에 값을 저장하거나 불러올 때, 혹은 fetch 해올 때 주의해서 사용해야한다.
@Entity class Member { @Id @GeneratedValue private Long id; private String name; private int age; // 주민번호(id_number)는 DB에 저장하지 않겠다는 의미 @Transient private String id_number; ... }
Java
복사

참고