[JPA] Entity Mapping : ํ๋ โก๏ธ ์ปฌ๋ผ ๋งคํ
by rlaehddnd0422์ด๋ฒ ํฌ์คํ ์์๋ JPA๊ฐ ์ ๊ณตํ๋ ํ๋์ ์ปฌ๋ผ ๋งคํ์ฉ ์ด๋ ธํ ์ด์ ์ ์์๋ณด๊ฒ ์ต๋๋ค.
@Column
๊ธฐ๋ณธ์ ์ผ๋ก ์ํฐํฐ์ ํ๋์ ํ ์ด๋ธ์ ์ปฌ๋ผ์ ๋งคํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ด๋ ธํ ์ด์ ์ ๋๋ค.
์ํฐํฐ์ ํ๋์ @Column์ ์ง์ ํ๊ณ name ์์ฑ์ ๋งคํํ ํ ์ด๋ธ์ ์ปฌ๋ผ๋ช ์ ์ง์ ํด ์ฃผ๋ฉด ๋ฉ๋๋ค.
+ nullable ์์ฑ์ false๋ก ์ค์ ํ๋ฉด DDL ์์ฑ ์์ฑ์ not null ์ด ์ถ๊ฐ๋ฉ๋๋ค.
int์ ๊ฐ์ด ์๋ฐ์ ๊ธฐ๋ณธํ์ ์ธ ๊ฒฝ์ฐ null ๊ฐ์ ์ ๋ ฅํ ์ ์๊ธฐ ๋๋ฌธ์ ์๋ฐ ๊ธฐ๋ณธํ์ ์ DDL๋ก ์์ฑํ ๋๋ not null ์ ์ฝ ์กฐ๊ฑด์ ์ถ๊ฐํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค.
ํ๋๋ช ๊ณผ ์ปฌ๋ผ๋ช ์ด ์ผ์นํ๋ ๊ฒฝ์ฐ @Column์ ์๋ตํ ์ ์์ต๋๋ค.
@Enumerated
์๋ฐ์ enum ํ์ ์ ๋งคํํ ๋ ์ฌ์ฉํ๋ ์ด๋ ธํ ์ด์
์์
@Enumerated
private RoleType roleType;
- @Enumerated ์์ฑ์ EnumType.STRING์ผ๋ก ์ง์ ์ ENUM ์ด๋ฆ ๊ทธ๋๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ
- @Enumerated ์์ฑ์ EnumType.ORDINAL์ผ๋ก ์ง์ ์ ENUM์ ์ธ๋ฑ์ค ๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ
@Temporal
๋ ์ง ํ์ ์ ๋งคํํ ๋ ์ฌ์ฉํ๋ ์ด๋ ธํ ์ด์ ์ ๋๋ค.
@Temporal(TemporalType.TIMESTAMP)
private Date createdDate;
@Temporal(TemporalType.TIMESTAMP)
private Date lastModifiedDate;
@Temporal ์๋ต ์ ์๋ฐ์ Date์ ๊ฐ์ฅ ์ ์ฌํ timestamp๋ก ์ ์๋ฉ๋๋ค.
@Lob
@Transient
๋งคํํ๊ณ ์ถ์ง ์์ ํ๋์ ์ค์ ํ๋ ์ ๋ ธํ ์ด์ ์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ์ง๋ ์๊ณ , ์กฐํ๋์ง๋ ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด์ ์์๋ก ์ด๋ค ๊ฐ์ ๋ณด๊ดํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ ํ๋์ ๋ถ์ฌ ์ฌ์ฉํฉ๋๋ค.
@Transient
private Integer temp;
@Access
ํด๋์ค ๋ ๋ฒจ์ ์ค์ ํจ์ผ๋ก์จ JPA๊ฐ ์ํฐํฐ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ๋ฐฉ์์ ์ง์ ํฉ๋๋ค.
@Access๋ฅผ ์ค์ ํ์ง ์์ผ๋ฉด @Id์ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๊ทผ๋ฐฉ์์ด ์๋์ผ๋ก ์ค์ ๋ฉ๋๋ค.
@Id๊ฐ ํ๋์ ์์ผ๋ฉด?
@Id
private Long id;
@Access(AccessType.FIELD)๊ฐ ์๋์ผ๋ก ์ ์ฉ๋๊ณ ,
@Id๊ฐ ํ๋กํผํฐ์ ์์ผ๋ฉด
@Id
public String getId(){
return id;
}
@Access(AccessType.PROPERTY)๊ฐ ์๋์ผ๋ก ์ ์ฉ๋ฉ๋๋ค.
@Entity
@Access(AccessType.FIELD)
public class Member{
@Id
private String id;
private String data1;
...
}
- ํ๋ ์ ๊ทผ : @Access(AccessType.FIELD) / ํ๋์ ์ง์ ์ ๊ทผ. ํ๋ ์ ๊ทผ ์ ์ด์๊ฐ private์ฌ๋ ์ ๊ทผ ๊ฐ๋ฅ!
- ํ๋กํผํฐ ์ ๊ทผ : @Access(AccessType.PROPERTY) / Getter๋ฅผ ์ฌ์ฉํ ์ ๊ทผ
<์ฐธ๊ณ ์๋ฃ>
'๐ Backend > Spring Data JPA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JPA] ์ฐ๊ด๊ด๊ณ ๋งคํ - ์๋ฐฉํฅ ์ฐ๊ด๊ด๊ณ (1) | 2023.04.30 |
---|---|
[JPA] ์ฐ๊ด๊ด๊ณ ๋งคํ - ๋จ๋ฐฉํฅ ์ฐ๊ด๊ด๊ณ (0) | 2023.04.29 |
[JPA] Entity Mapping : ๊ธฐ๋ณธ ํค(PK) ๋งคํ (0) | 2023.04.27 |
[JPA] Entity Mapping : ๊ฐ์ฒด โก๏ธ ํ ์ด๋ธ ๋งคํ (0) | 2023.04.27 |
[JPA] ์์์ฑ ์ปจํ ์คํธ์ ์ํฐํฐ (0) | 2023.04.27 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
Study Repository
rlaehddnd0422