@Transient
🚫 @Transient
정의
@Transient는 JPA 엔티티에서 데이터베이스에 저장하지 않을 필드를 지정하는 애너테이션이다. 엔티티 객체 안에서는 사용하지만 테이블 컬럼으로 매핑하지 않을 때 사용한다.
계산 결과, 임시 상태값, 화면 표시용 보조값처럼 영속화가 필요 없는 필드에 적합하다.
🧩 역할
- 필드를 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에 저장되지 않는다.- 조회 후 값을 계산해 넣는 용도로 적합하다.
- 영속성 대상이 아니므로 값이 유지된다고 기대하면 안 된다.
@Transient는transient키워드와 비슷하지만 JPA에서의 의미가 다르다.
📌 정리
@Transient는 DB에 저장하지 않을 필드를 표시하는 애너테이션이다.- 계산용, 임시값, 화면 표시용 필드에 주로 사용한다.
- 엔티티와 테이블 매핑을 분리하고 싶을 때 유용하다.
댓글남기기