JPA Entity Annotation
JPAλ‘ λ°μ΄ν°λ² μ΄μ€μ 맀νλ μν°ν°λ₯Ό μμ±ν λ νλμ νμν μ΄λ Έν μ΄μ μ μμ보μ.
@Id
@Id
λ νλμ Primary Keyλ₯Ό 맀νν λ μ°λ μ΄λ
Έν
μ΄μ
μ΄λ€.@Id
λ‘ λ§€νμ ν΄μ€ λ€, PK μμ±μ λν μ λ΅μ μ ν μ μλ€.@GeneratedValue(strategy = GenerationType.μ λ΅ λ°©λ²)
μ μ΄λ
Έν
μ΄μ
μΌλ‘ PK μμ± μ λ΅μ μ ν μ μλ€.
μ λ΅μ μ’
λ₯λ λ€μκ³Ό κ°λ€.
- IDENTITY : MySQLμ Auto_Increment λ°©μμ΄λ€. λ°μ΄ν°λ² μ΄μ€κ° 1μ© μ¦κ°μν€λ©° μλμΌλ‘ μμ±ν΄ μ€λ€.
- SEQUENCE : μ€λΌν΄μ μνμ€ μ€λΈμ νΈ λ°©μμ μ¬μ©νλ€.
- TABLE : ν€ μμ±μ© ν μ΄λΈμ λ§λ€μ΄μ μμ±νλ λ°©μμ΄λ€.
- AUTO : JPAμ μ€μ λ λ°μ΄ν° λ² μ΄μ€ λ°©μΈμ λ§μΆ°μ μμ±νλ€. λ°©μΈμ νμΈνκ³ μ¬μ©ν΄μΌ νλ€.
@Transient
ν΄λΉ νλκ° λ°μ΄ν°λ² μ΄μ€μ λ°μ μ λκ² νλ€.
@Column
νλμ 맀μΉλλ μΉΌλΌμ λν μ€μ μ ν μ μλ μ΄λ
Έν
μ΄μ
μ΄λ€.
λ€μκ³Ό κ°μ μ€μ μ ν μ μλ€.
- name : νλμ 맀νλ ν μ΄λΈμ μΉΌλΌ μ΄λ¦μ μ ν μ μλ€. λν΄νΈ κ°μ νλμ μ΄λ¦μ΄λ€.
- unique : μΉΌλΌμ λν unique 쑰건μ κ±Έμ΄μ€ μ μλ€. μ΄ μ€μ λ³΄λ¨ μν°ν°μ μ§μ '@Table(uniqueConstraints = “abc”)'λ‘ μ€μ ν μ μλ€.
- nullable : μ΄ μμ±μ flaseλ‘ νλ©΄
not null
μ μ½ μ‘°κ±΄μ΄ κ±Έλ¦°λ€. - insertable, updatable : 컬λΌμ μ½μ νκ±°λ, μμ νμ λ λ°μν μ§λ₯Ό μ¬λΆ λν΄νΈ κ°μ true
- length : μΉΌλΌ κ°μ κΈΈμ΄λ₯Ό μ§μ μ€μ ν μ μλ€.
- columnDefinition : λ°μ΄ν°λ² μ΄μ€μκ² μΉΌλΌ μ 보λ₯Ό μ§μ μ€λ€.
@Enumerated
- EnumType.String : Enum μ΄λ¦μ λ¬Έμ κ·Έλλ‘ μ μ₯
- EnumType.ORDINAL : μ΄λ μμλ₯Ό λλΉμ μμμ λ§κ² μ«μλ‘ μ μ₯ -> μ«μκ° μ¬λμ μκ°κ³Ό λ€λ₯΄κ² λ°λκΈ° λλ¬Έμ μ μ μ°μΈλ€.
'JPA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
JPAμμ Pageableλ‘ νμ΄μ§ μ²λ¦¬νκΈ° (0) | 2022.03.13 |
---|---|
ORM(Object Relational Mapping) (0) | 2022.03.13 |
JPAμμ Optional μ²λ¦¬ (0) | 2022.03.11 |
JPA μλ°©ν₯ 무ν μ°Έμ‘° (0) | 2022.03.10 |
Entity κ°μ κ΄κ³ (0) | 2022.03.10 |