본문 바로가기
IT/Java

@Transient 어노테이션

by 성준하이 2023. 10. 2.
반응형

JPA를 사용할 경우 Entity 를 사용하게 되는데 여기 내에 값들은 entity 와 매칭되는 테이블의 컬럼 하나하나로 이어진다.

 

그렇다는건 entity 클래스 내에는 테이블의 컬럼값들만 정의를 해야하는데,

만약 dto처럼 사용이 되는 entity의 경우 는 테이블 컬럼들 이외에 추가로 다른 변수들도 사용해야할수도 있다.

이럴 경우 @Transient 어노테이션을 사용한다.

 

예를들어 Member Entity 가 아래와 같이 있다.

@Entity
public class Member{
     private String id;
     private String pw;
     private String pwconfirm;

pwconfirm 항목은 비밀번호를 한번더 입력해주세요에 사용되는 컬럼이라서 비지니스로직에서 pw==pwconfirm 의 경우에만 사용이 되지 entity로는 필요하지가 않다.

이럴 경우에 

@Entity
public class Member{
     private String id;
     private String pw;

     @Transient 
     private String pwconfirm;

이렇게 지정하면 된다.

 

그럼 entity 의 특성인 persistence 즉 영속성 에서도 제외 대상이다.

반응형

댓글