@Access
JPA๊ฐ ์ํฐํฐ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ๋ฐฉ์์ ์ง์ ํฉ๋๋ค.
์ ๊ทผํ๋ ๋ฐฉ์์๋ ๋๊ฐ์ง ๋ฐฉ์์ด ์๋๋ฐ ํ๋ํ๋ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
ํ๋ ์ ๊ทผ : AccessType.FILED
ํ๋์ ์ง์ ์ ๊ทผํฉ๋๋ค.
ํ๋ ์ ๊ทผ ๊ถํ์ด private์ด์ด๋ ์ ๊ทผํ ์ ์์ต๋๋ค.
ํ๋กํผํฐ ์ ๊ทผ : AccessType.PROPERTY
์ ๊ทผ์(getter)๋ฅผ ์ฌ์ฉํฉ๋๋ค
์ฌ์ฉ
@Entity
@Access(AccessType.FIELD)
public class Member {
@Id
private String id;
}
@Access๋ฅผ ์ค์ ํ์ง ์์ ๊ฒฝ์ฐ
@Access๋ฅผ ์ค์ ํ์ง ์์ผ๋ฉด @Id์ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๊ทผ ๋ฐฉ์์ด ์ค์ ๋ฉ๋๋ค.
@Id๊ฐ ํ๋์ ๋ฌ๋ ค์์ผ๋ฉด ํ๋ ์ ๊ทผ, Getter์ ๋ฌ๋ ค์์ผ๋ฉด ํ๋กํผํฐ ์ ๊ทผ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
@Entity
public class Member {
@Id
private String id;
}
@Id๊ฐ ํ๋์ ๋ฌ๋ ค์์ผ๋ฏ๋ก @Access(AccessType.FIELD)์ ๊ฐ์ต๋๋ค.
@Entity
public class Member {
private String id;
@Id
public String getId(){
return id;
}
}
@Id๊ฐ ํ๋กํผํฐ์ ๋ฌ๋ ค์์ผ๋ฏ๋ก @Access(AccessType.PROPERTY)์ ๊ฐ์ต๋๋ค.
ํ๋ ์ ๊ทผ ๋ฐฉ์๊ณผ ํ๋กํผํฐ ์ ๊ทผ ๋ฐฉ์ ํจ๊ป ์ฌ์ฉํ๊ธฐ
@Entity
public class Member {
@Id
private String id;
@Trasient
private Stirng firstName;
@Trasient
private Stirng lastName;
private String fullName;
@Access(AccessType.PROPERTY)
public String getFullName() {
return firstName + lastName;
}
}
@Id๊ฐ ํ๋์ ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ์ ํ๋ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
getFullName()๋ง ํ๋กํผํฐ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
ํ์ ์ํฐํฐ๋ฅผ ์ ์ฅํ๋ฉด FULLNAME์ปฌ๋ผ์ firstName + lastName์ ๊ฒฐ๊ณผ๊ฐ ์ ์ฅ๋ฉ๋๋ค.
๐ Reference
[์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊น์ํ]
'๐๏ธ Spring > JPA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JPA] ๊ธฐ๋ณธ ํค ๋งคํ - SEQUENCE, TABLE ์ ๋ต์ ์ต์ ํ (0) | 2021.12.14 |
---|---|
[JPA] ํ๋์ ์ปฌ๋ผ ๋งคํ - @ElementCollection (๊ฐ ํ์ ์ปฌ๋ ์ ๋งคํ), @CollectionTable (0) | 2021.12.14 |
[JPA] ํ๋์ ์ปฌ๋ผ ๋งคํ - @Transient (0) | 2021.12.14 |
[JPA] ํ๋์ ์ปฌ๋ผ ๋งคํ - @Basic (0) | 2021.12.14 |
[JPA] ํ๋์ ์ปฌ๋ผ ๋งคํ - @Lob (0) | 2021.12.14 |