๊ฐ์ฒด์ ํ ์ด๋ธ ๋งคํ
@Entity
- @Entity๊ฐ ์ ์๋์ด์๋ ํด๋์ค๋ JPA๊ฐ ๊ด๋ฆฌํ๋ค.
- ๊ธฐ๋ณธ ์์ฑ์๊ฐ ๊ผญ ์์ด์ผ ํ๋ค.
- ์์ฑ: name ->JPA์ ์ฌ์ฉํ ์ํฐํฐ ์ด๋ฆ์ ์ง์ ํ๋ค, ๊ธฐ๋ณธ๊ฐ : ํด๋์ค ์ด๋ฆ์ ๊ทธ๋๋ก ์ฌ์ฉ
@Table
- name, catalog, schema ๋ฑ๋ฑ. .
ํ๋์ ์ปฌ๋ผ ๋งคํ
@Column
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปฌ๋ผ๋ช ์ ์ค์ ํด์ค ์ ์๋ค.
unique(์ค๋ฌด์์ ์ ์ฌ์ฉํ์ง ์๋๋ค -> ์ ๋ํฌ ์ ์ฝ์กฐ๊ฑด ์ด๋ฆ์ ์ค์ ํ ์ ์๋ค ๋์ @Table(uniqueCons.. ์ฌ์ฉ), length ๋ฑ ์ค์ ํ ์ ์๋ค.
@Temporal
๋ ์ง ํ์ ๋งคํ
ํ์ง๋ง LocalDate, LocalDateTime์ ์ฌ์ฉํ ๋๋ ์๋ต ๊ฐ๋ฅํ๋ค.
@Enumerated
enum ํ์ ๋งคํ
default๊ฐ ORDINAL ์ธ๋ฐ enum ์์๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ค ( ์ฌ์ฉX -> ์์๊ฐ ๋ณ๊ฒฝ๋์ด๋ ์ด์ ๋ฐ์ดํฐ๋ ๋ณ๊ฒฝ์ด ์๋์ด์ ๋ฌธ์ ๋ฐ์ )
EnumType.STRING ์ enum ์ด๋ฆ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ค (์ด๊ฒ์ ์ฌ์ฉ)
@Lob
BLOB, CLOB ๋งคํ
@Transient
ํน์ ํ๋๋ฅผ ์ปฌ๋ผ์ ๋งคํํ์ง ์์ (๋งคํ ๋ฌด์)
๋ฉ๋ชจ๋ฆฌ์ ๋ก์ง์๋ง ์ฌ์ฉํ๊ณ ์ถ์๋ ์ฌ์ฉํ๋ค.
๊ธฐ๋ณธ ํค ๋งคํ
@Id
- ์ง์ ํ ๋นํ ๊ฒฝ์ฐ @Id
- ์๋ ์์ฑ์ (@GeneratedValue) ์ถ๊ฐํ๋ค.
- strategy = GenerationType.AUTO - ๋ฐฉ์ธ์ ๋ฐ๋ผ ์๋ ์ง์ , ๊ธฐ๋ณธ๊ฐ
- strategy = GenerationType.IDENTITY - ๊ธฐ๋ณธ ํค ์์ฑ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ํ๋ค. (MYSQL)
DB์ insert๋ฅผ ํด๋ด์ผ id๊ฐ์ ์ ์ ์๋ค. ๊ทธ๋์ ์์ธ์ ์ผ๋ก persist ํ ๋ ๋ฐ๋ก ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฐ๋ค. ( ์๋๋ ํธ๋์ ์ ์์ ์ฟผ๋ฆฌ๊ฐ ๋ ๋ผ๊ฐ ) -> id ๊ฐ ์ ์ ์์
- strategy = GenerationType.SEQUENCE - ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํ์ค ์ค๋ธ์ ํธ ์ฌ์ฉ @SequenceGenerator ํ์ (ORACLE)
- strategy = GenerationType.TABLE - ํค ์์ฑ์ฉ ํ ์ด๋ธ ์ฌ์ฉ @TableGenerator ํ์ (๋ชจ๋ DB) -> ์ฑ๋ฅ์ด ๋ณ๋ก...
-> ๊ถ์ฅํ๋ ์๋ณ์ ์ ๋ต
- ๊ธฐ๋ณธ ํค ์ ์ฝ ์กฐ๊ฑด : null X, ์ ์ผ, ๋ณํ๋ฉด ์๋๋ค.
- ๋ฏธ๋๊น์ง ์ด ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ฐํค๋ ์ฐพ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๋๋ฆฌํค(๋์ฒดํค)๋ฅผ ์ฌ์ฉํ๋ค.
์๋ฅผ ๋ค์ด ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ๋ ๊ธฐ๋ณธ ํค๋ก ์ ์ ํ์ง ์๋ค.
๊ถ์ฅ : Longํ + ๋์ฒดํค + ํค ์์ฑ์ ๋ต ์ฌ์ฉ
๋์ ๋ฐ๋ผ ๋๋ค๊ฐ, UUID ๋ฅผ ๊ถ์ฅ
์ฐ๊ด๊ด๊ณ ๋งคํ : @ManyToONe, @JoinColumm ๋ฑ
๋ฐ์ดํฐ ๋ฒ ์ด์ค ์คํค๋ง ์๋ ์์ฑ
DDL์ ์ ํ๋ฆฌ์ผ์ด์ ์คํ ์์ ์ ์๋ ์์ฑ
ํ ์ด๋ธ ์ค์ฌ์์ -> ๊ฐ์ฒด ์ค์ฌ์ผ๋ก
๋ฐ์ดํฐ ๋ฒ ์ด์ค ๋ฐฉ์ธ์ ํ์ฉํ์ฌ ์ ์ ํ๊ฒ DDL์ ์์ฑํ๋ค
์ด๋ ๊ฒ ์์ฑ๋ DDL์ ๊ฐ๋ฐ์๋ฒ์์๋ง ์ฌ์ฉํ๊ณ ์ ์ ํ๊ฒ ๋ค๋ฌ์ด์ ์ด์์์ ์ฌ์ฉํ์.
create > ๊ธฐ์กด ๋ฐ์ดํฐ ์ญ์ ํ ๋ค์ ์์ฑ
create-drop > ๊ธฐ์กด ๋ฐ์ดํฐ ์ญ์ ํ ๋ค์ ์์ฑ ์ ํ๋ฆฌ์ผ์ด์ ์ข ๋ฃ์ ํ ์ด๋ธ ์ญ์
update > ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ์์ (alter) , ์ถ๊ฐํ๋๊ฒ ๋ง ๊ฐ๋ฅ
validate > ์ํฐํฐ์ ํ ์ด๋ธ์ด ์ ์๋งคํ๋์๋์ง ํ์ธํด์ค๋ค.
none > ์ฌ์ฉํ์ง ์์
์ด์ ์ฅ๋น์๋ ์ ๋ create, create-drop, update ์ฌ์ฉํ๋ฉด ์๋๋ค.
๊ฐ๋ฐ ์ด๊ธฐ -> create or update
ํ ์คํธ ์๋ฒ -> update or validate
์คํ ์ด์ง๊ณผ ์ด์ ์๋ฒ -> validate or none
--> ๋ก์ปฌPC ์ธ์๋ none or validate ๋ง ์ฌ์ฉํ๊ณ ํ ์ด๋ธ ์์ ์ ์ง์ ํ๋ค.
'WEB > JPA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
5. ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๋ค์ํ ์ฐ๊ด๊ด๊ณ ๋งคํ (0) | 2021.05.14 |
---|---|
4. ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ์ฐ๊ด๊ด๊ณ (0) | 2021.05.14 |
2. ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๋ด๋ถ ๋์ ๋ฐฉ์ (0) | 2021.05.13 |
1. ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊ฐ๋จํ ์ค์ต (0) | 2021.05.13 |
0. ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊ธฐ๋ณธํธ (0) | 2021.05.11 |