π λ€μ΄κ°λ©°
μ΄λ² ν¬μ€ν μμλ @Transient μ΄λ Έν μ΄μ μ΄ λ¬΄μμΈμ§, κ·Έλ¦¬κ³ κ·Έ μ°μμ λνμ¬ μ 리νκ³ μ ν©λλ€. μλ‘κ² ν©λ₯ν λλ©μΈνμ μ€νλ§λΆνΈ λ‘μ§μμ @Transient κ° λ€μ λ°κ²¬λμ΄ μ 리νκ² λμμ΅λλ€.
π @Transient λ
@Transientλ μν°ν° κ°μ²΄μ λ°μ΄ν°μ ν μ΄λΈμ 컬λΌ(column)κ³Ό 맀ννκ³ μλ κ΄κ³λ₯Ό μ μΈνκΈ° μν΄ μ¬μ©ν©λλ€. μ£Όλ‘ λ³΄μμ 보λ κ΅³μ΄ ν μ΄λΈμ μ μ₯ν νμλ μμ§λ§ λλ©μΈ λ‘μ§ λλ λΉμ¦λμ€ λ‘μ§μ κ³μ°μ μν΄ νμν κ²½μ° ν΄λΉ μ΄λ Έν μ΄μ μ νμ©ν©λλ€.
λ μ νν νννλ©΄ JPAμ κ°μ₯ ν° νΉμ§ μ€ νλμΈ μμμ± μ»¨ν μ€νΈ λμμμ μ μΈμν€κΈ° μνμ¬ μ¬μ©λ©λλ€.
λν JPA μ μ»¬λΌ λ§€ν λ νΌλ°μ€ μ΄λ Έν μ΄μ μ Field, Property λ°©μμ μ§μνκΈ° λλ¬Έμ νλμ λ©μλμ μ μΈν μ μμ΅λλ€.
@Transient μ΄λ Έν μ΄μ μ μ€λͺ νκΈ° μν΄ κ°μ₯ λ§μ΄ μ¬μ©νλ μμλ νμ(Member) μν°ν°μ confirmPassword νλ μ λλ€.
@Entity
public class Member{
@Id
private Long id; // PK
private String userId; // μ¬μ©μ μμ΄λ
private String password; // λΉλ°λ²νΈ
private String confirmPassword; // λΉλ°λ²νΈ μ¬μ
λ ₯
}
μμ μν°ν° κ°μ²΄μμ confirmPasswordλ κ΅³μ΄ μ μ₯ν νμκ° μλ νλκ°μ λλ€. password μμ μΌμΉμ¬λΆλ§ νμΈνλ©΄ λλ―λ‘ μ΄μ κ°μ λ°μ΄ν° νλλ₯Ό @Transient μ΄λ Έν μ΄μ μ μ¬μ©ν΄ κ΄λ¦¬ν νμκ° μλ λ°μ΄ν°μμ μ μΈν΄μ£Όλ©΄ λ©λλ€.
@Entity
public class Member{
@Id
private Long id;
private String userId;
private String password;
// [1] @Transient μ μΈ
javax.persistence.@Transient
private String confirmPassword; // λΉλ°λ²νΈ μ¬μ
λ ₯ 맀ν μ μΈ
}
π μ¬μ©μ μ£Όμν΄μΌν μ
JPAμ μν°ν° κ°μ²΄μ λν μ κ·Όλ°©μμ΄ μ΄λ»κ² λμ΄μλλμ λ°λΌ @Transient μ΄λ Έν μ΄μ μ μμΉλ₯Ό μ΄μ λ§κ² μ μΈν΄μ£Όμ΄μΌ ν©λλ€.
JPAμ μν°ν° μ κ·Όλ°©μμ @Id μ΄λ Έν μ΄μ μ μμΉμ λ°λΌ κ²°μ λλ©° μν°ν°μ λͺ¨λ νλ λλ μμλ μν°ν°μ κ³μΈ΅μ λν΄μλ μΌκ΄μ± μκ² μ μ©λμ΄μΌ @Transient μ΄λ Έν μ΄μ μ΄ μ μμ μΌλ‘ μλνκ² λ©λλ€.
// [1] νλ λ°©μ
@Entity
public class Member{
@Id
private Long id;
private String name;
...
}
// [2] λ©μλ λ°©μ
@Entity
public class Member{
private Long id;
private String name;
@Id
public Long getId(){return this.id;}
public void setId(Long id){this.id = id;}
public String getName(){return this.name;}
public void setName(String name){this.name = name;}
}
@Entity
public class Member{
@Id // νλ λ°©μ
private Long id;
private String userId;
private String password;
private String confirmPassword;
@Transient // JPAμμ μΈμ λΆκ° → λμ μν¨ νλμ @Transient μ΄λ
Έν
μ΄μ
μ μΈ νμ
public String getComfirmPassword(){ return this.confirmPassword; }
}
μ°Έκ³ :
- μλ° ORM νμ€ JPA νλ‘κ·Έλλ°
- https://gmoon92.github.io/jpa/2019/09/29/what-is-the-transient-annotation-used-for-in-jpa.html
'BackEnd > JPA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JPA] μλ°μμ 볡ν©ν€ μ¬μ©νκΈ° (0) | 2023.09.17 |
---|---|
@Embeddable @Embedded μ΄λ Έν μ΄μ μ λν΄ μμ보μ (0) | 2023.04.24 |
[JPA] μμμ± μ°κ΄κ΄κ³ μ μ΄ CASCADE λ? (0) | 2022.11.13 |
JPAμ Dirty Checkingμ΄λ? (0) | 2022.11.05 |