@Transient

jaegeunsong97·2024년 1월 31일
0

정의

@Transient는 엔티티 클래스의 필드 중 DB에 매핑하지 않을 필드를 표시하는 것입니다.

따라서 영속성 컨텍스트(DB의 중간다리)를 통해 DB에 저장되거나 로드되지 않습니다.

@Transient를 사용하는 이유는 2가지가 있습니다.

  1. 특정 필드를 일시적으로 가지고, DB에는 저장할 필요가 없는경우
    : 이 경우에는 말 그대로 계산 또는 일시적으로만 필요할 때 사용이 됩니다.
  2. DB에서 직접 계산되는 값인 경우
    : 예를 들어, 두 열의 값을 더한 결과를 특정 필드에 저장하는 경우, 해당 필드는 DB에 저장할 필요가 없습니다.
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Transient;

@Entity
public class Employee {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    private double salary;

    @Transient
    private transient String temporaryData; // 데이터베이스에 매핑되지 않는 필드

    // 생성자, 게터, 세터 등...
}

결론

@Transient가 붙어있는 필드는 DB 테이블과 매핑되지 않으면 JPA 또한 해당 필드를 무시하기 때문에 DB에 저장하거나 로드할 때 무시합니다.

profile
블로그 이전 : https://medium.com/@jaegeunsong97

0개의 댓글