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
복사