🚫 @Transient

정의

@TransientJPA 엔티티에서 데이터베이스에 저장하지 않을 필드를 지정하는 애너테이션이다. 엔티티 객체 안에서는 사용하지만 테이블 컬럼으로 매핑하지 않을 때 사용한다.

계산 결과, 임시 상태값, 화면 표시용 보조값처럼 영속화가 필요 없는 필드에 적합하다.

🧩 역할

  • 필드를 DB 컬럼 매핑에서 제외한다
  • 엔티티 내부에서만 사용하는 값을 표현한다
  • 계산용 또는 임시값을 관리한다
  • @Column으로 매핑되는 필드와 구분할 수 있게 한다

🛠 사용법

엔티티 예시

@Entity
@Table(name = "BAT_SCDL")
public class BatchJob {

    @Id
    @Column(name = "BAT_TYPE_CD", length = 30, nullable = false)
    private String batchJobTypeCode;

    @Column(name = "BAT_NM", length = 50, nullable = false)
    private String batchJobName;

    @Transient
    private String batchJobExecutingInfoText;
}

사용 예시

  • 화면에만 보여줄 상태값
  • DB에 저장할 필요 없는 계산 결과
  • 조회 후 조합해서 만드는 표시용 문자열

⚠️ 주의사항

  • @Transient가 붙은 필드는 DB에 저장되지 않는다.
  • 조회 후 값을 계산해 넣는 용도로 적합하다.
  • 영속성 대상이 아니므로 값이 유지된다고 기대하면 안 된다.
  • @Transienttransient 키워드와 비슷하지만 JPA에서의 의미가 다르다.

📌 정리

  • @Transient는 DB에 저장하지 않을 필드를 표시하는 애너테이션이다.
  • 계산용, 임시값, 화면 표시용 필드에 주로 사용한다.
  • 엔티티와 테이블 매핑을 분리하고 싶을 때 유용하다.

연결문서

태그: ,

카테고리:

업데이트:

댓글남기기