Hibernate κ° λμ§?
νμ΄λ²λ€μ΄νΈ ORMμ μλ° μΈμ΄λ₯Ό μν κ°μ²΄ κ΄κ³ 맀ν νλ μμν¬μ΄λ€.
κ°μ²΄ μ§ν₯ λλ©μΈ λͺ¨λΈμ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ‘ 맀ννκΈ° μν νλ μμν¬λ₯Ό μ 곡νλ€.
JPAμ ꡬν체μ ν μ’ λ₯λ‘, JPA μΈν°νμ΄μ€λ₯Ό ꡬννλ©° λ΄λΆμ μΌλ‘ JDBC API λ₯Ό μ¬μ©νλ€.
Hibernate λ SQL μ μ§μ μ¬μ©νμ§ μκ³ λ©μλ νΈμΆλ§μΌλ‘ 쿼리λ₯Ό μνν©λλ€. ( SQL λ°λ³΅μμ μ νμ§ μμλ λλ€ )
컬λΌμ΄ λ³κ²½λμμ λ, ν μ΄λΈκ³Ό κ΄λ ¨λ DAO μ νλΌλ―Έν°, 쿼리 ,SQL λ±μ λμ μνν΄μ£ΌκΈ° λλ¬Έμ νΉμ λ²€λμ¬μ μ’ μμ μ΄μ§ μμ΅λλ€. μ΄λ¬ν νΉμ§μ μ μ§λ³΄μ μΈ‘λ©΄μμλ ν° μ₯μ μ λλ€.
μλ₯Ό λ€μ΄ Mysql μ μ¬μ©νλ€κ° ORCLE λ‘ λ³κ²½νλλΌλ Hibernate λ λ³κ²½ν ORCLE λ‘ μΏΌλ¦¬λ‘ μνν΄μ€λλ€.
νλ§λλ‘ DB Table μ κ°μ²΄λ‘ λ§λ€μ΄ κ΄λ¦¬νκΈ° λλ¬Έμ 쿼리 κ²°κ³Όλ₯Ό JAVA κ°μ²΄λ‘ 맀νν΄μ μ¬μ©ν μ μκ² ν΄μ€λλ€.
νμ§λ§ λ©μλλ‘ νΈμΆνκΈ° λλ¬Έμ μ§μ SQL μ μμ±νλ κ²λ³΄λ€λ μ±λ₯μ μ’μ§ μμ λκ° λ°μν©λλ€.
μ΄ λ¬Έμ λ₯Ό 보μνκΈ° μν΄ JPQL, NativeQuery λ₯Ό μ§μνλ©° Querydsl μ μ¬μ©ν μ μμ΅λλ€.
μ μ¬μ©ν κΉ?
κ°μ²΄μ μ± μμ μμν μ μμ΅λλ€.
κΈ°μ‘΄μλ SQL μ€μ¬μΌλ‘ κ°λ°μ νμ§λ§, Hibernate λ₯Ό μ¬μ©νκ² λλ©΄μ κ°μ²΄λ₯Ό λΆλ¬μ¬λ μ°κ΄λ κ°μ²΄ λν ν¨κ» λΆλ¬μ€κΈ° λλ¬Έμ SQL μ μμ‘΄μ μ΄μ§ μμ μ μμ΅λλ€.
κ·Έλ λ€λ©΄ @NotNull & @NotEmpty & @NotBlank κ° λκΉ?
API κ°λ°μ μ ν¨μ± κ²μ¬λ₯Ό μν Bean Validation(Hibernate Validation) μμ μ 곡νλ νμ€ Validation μ λλ€.
λ³΄ν΅ Controller, Service, Repostiory μμ μ μμ μΌλ‘ Validation μ΄ λΆμ°λμ΄ μ½λ μ€λ³΅κ³Ό κ²μ¬ λ‘μ§ μΆμ μ΄ μ΄λ €μ μ ν리μΌμ΄μ μ΄ λ³΅μ‘ν΄μ§λλ€. μ΄λ¬ν λ¬Έμ μ μ ν΄κ²°νκΈ° μν΄ μ ν¨μ± κ²μ¬κ° νμν κ°μ²΄μ μ§μ μ μνλ λ°©λ²μ λλ€.
νμκ°μ λν 쑰건 체ν¬μΌ κ²½μ° μνκ³Ό μ± μμ λͺ ννκ² νκΈ° μν΄ DOMAIN λ‘μ§μ΄ μλ DTO μμ μ¬μ©ν©λλ€.
@NotNull μ λ§ κ·Έλλ‘ Null λ§μ νμ©νμ§ μμ΅λλ€. ( "", " " μ νμ© )
- λͺ¨λ νμ μ¬μ© κ°λ₯
The annotated element must not be null. Accepts any type
@NotNull(message = "λΉλ°λ²νΈ λ Null μΌ μ μμ΅λλ€.")
@NotEmpty μ Null, "" μ νμ©νμ§ μμ΅λλ€ (" " νμ©)
- λ¬Έμ,Collection,λ°°μ΄,맡 μ¬μ© κ°λ₯
The annotatd element must not be null nor empty.
Supported types are :
- CharSequence (length of character sequence is evaluated)
- Collection (collection size is evaluated)
- Map (map size is evaluated)
- Array (array length is evaluated)
@NotBlank μ κ°μ₯ κ°λ ₯ν΄μ Null, "", " " λͺ¨λλ₯Ό νμ©νμ§ μμ΅λλ€.
The annotated element must not be null and must contain at least one non-whitespace character. Accepts CharSequence.
- λ¬Έμ μ¬μ©κ°λ₯
+
@Size λ μ΅μ, μ΅λ μ¬μ΄μ¦λ₯Ό μ§μ ν μ μμ΅λλ€.
@Size(min = 8, max = 16, message = "λΉλ°λ²νΈλ 8μ μ΄μ 15μ μ΄ν μ΄μ¬μΌ ν©λλ€.")
λν @email μ ν΅ν΄ email νμλ§ λ°μ μλ μμ΅λλ€.
μ΄μΈμλλ§μ μ΄λ Έν μ΄μ μ΄ μμ±μ΄ μ‘΄μ¬νλ―λ‘ κ³΅μ λ¬Έμλ₯Ό ν΅ν΄ νμΈν μ μμ΅λλ€.
https://beanvalidation.org/2.0/spec/
'π WEB > JPA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Querydsl] λ΄κ° μ°Ύμ μ°λ €κ³ μ 리ν κΈ (0) | 2022.03.15 |
---|---|
7. μλ° ORM νμ€ JPA νλ‘κ·Έλλ° - νλ‘μμ μ°κ΄κ΄κ³ κ΄λ¦¬ (0) | 2021.05.18 |
6. μλ° ORM νμ€ JPA νλ‘κ·Έλλ° - κ³ κΈλ§€ν (0) | 2021.05.17 |
5. μλ° ORM νμ€ JPA νλ‘κ·Έλλ° - λ€μν μ°κ΄κ΄κ³ 맀ν (0) | 2021.05.14 |
4. μλ° ORM νμ€ JPA νλ‘κ·Έλλ° - μ°κ΄κ΄κ³ (0) | 2021.05.14 |