[DevCourse] μμ±ν AI νμ© λ°±μλ λ°λΈμ½μ€ 57μΌμ°¨
μ΄λ² μμ μμλ Spring Boot νκ²½μμ μ€μ μλΉμ€λ₯Ό ꡬμ±νλ©°, JPAλ₯Ό μ΄μ©ν μν λ±λ‘/μ‘°ν κΈ°λ₯μ μ§μ ꡬνν΄ λ³΄μλ€.
μ§λ μκ°μ νλ‘μ νΈμ λΌλλ₯Ό μΈν νλ€λ©΄, μ΄λ²μλ κ·Έ λΌλ μμ μ€μ κΈ°λ₯μ μΉμ΄λ³΄λ μκ°μ΄μλ€.
π μ€λ λ°°μ΄ λ΄μ© μ 리
π· JPAλ₯Ό νμ©ν μν°ν° μ€κ³μ μ μ₯ λ‘μ§ κ΅¬ν
μ€λμ μν μ 보λ₯Ό μ μ₯ν Item μν°ν°λ₯Ό μ§μ μ€κ³νκ³ , ItemSellStatusμ κ°μ enum νμ μ ν¨κ» μ¬μ©ν΄ λλ©μΈ λͺ¨λΈμ ꡬ체ννλ€.
Lombokμ μ¬μ©ν΄ λΆνμν getter/setter, toString λ±μ μ½λλ₯Ό μ€μκ³ , JPAμ @Entity, @Id, @GeneratedValue, @Enumerated λ±μ μ΄λ Έν μ΄μ μ ν΅ν΄ DB ν μ΄λΈκ³Ό μλ° κ°μ²΄λ₯Ό μμ°μ€λ½κ² λ§€νν μ μμλ€.
μ½λ ν μ€λ‘ ν μ΄λΈ κ΅¬μ‘°κ° λ§λ€μ΄μ§κ³ , κ°μ²΄ μ μ₯λ§μΌλ‘ DBμ λ°μ΄ν°κ° λ±λ‘λλ νλ¦μ΄ κ½€ μΈμ κΉμλ€.
πΆ Repository ν μ€νΈλ₯Ό ν΅ν JPA μ‘°ν κΈ°λ₯ κ²μ¦
λ¨μν μ μ₯λ§ ν΄λ³΄λ λ°μ λλλ κ²μ΄ μλλΌ, JPAμ λ€μν μ‘°ν λ°©μμ ν μ€νΈ μ½λλ‘ κ²μ¦ν΄ λ³Έ κ²λ μ€λμ ν΅μ¬μ΄μλ€.
- findByItemName, findByPriceBetween κ°μ 쿼리 λ©μλ κΈ°λ° κ²μ
- @Queryλ₯Ό νμ©ν JPQL μ§μ μμ±
- λ¬Έμμ΄ ν¬ν¨, λ²μ 쑰건, μ λ ¬ λ± λ€μν λ°©μμ μ‘°ν λ‘μ§ κ΅¬μ±
ν μ€νΈ λ©μλλ₯Ό ν΅ν΄ μν λ°μ΄ν°λ₯Ό μλμΌλ‘ μ¬λ¬ κ° μμ±ν λ€,
μ μμ μΌλ‘ μνλ 쑰건μ μνλ€μ΄ μ‘°νλλμ§ νμΈνλ©΄μ Spring Data JPAμ νΈλ¦¬ν¨κ³Ό μλνλ 쿼리 μμ± λ‘μ§μ μ€μ λ‘ μ²΄κ°ν μ μμλ€.
π· μ€μ νλ‘μ νΈ κ°κ°μ ν€μμ€ ν μ€νΈ μ€μ¬ κ°λ° νλ¦
μ€λμ λ¨μν 컨νΈλ‘€λ¬λ νλ©΄μ ꡬνν기보λ€λ, λλ©μΈ μ€μ¬μΌλ‘ μλΉμ€ ꡬ쑰λ₯Ό μ€κ³νκ³ , μ΄λ₯Ό κ²μ¦ κ°λ₯ν μ½λλ‘ ν μ€νΈνλ νλ¦μ κ²½νν μ μμλ€λ μ μμ μλ―Έκ° μ»Έλ€.
μ²μμλ ν μ€νΈ μ½λκ° λ¨μν 보쑰 μλ¨μ²λΌ λκ»΄μ‘μ§λ§, μ€μ λ‘ λ°μ΄ν°λ₯Ό μμ±νκ³ μ‘°ννλ©΄μ “μ€κ³ν λ‘μ§μ΄ μλλλ‘ λμνλμ§”λ₯Ό λΉ λ₯΄κ² νμΈν μ μλ€λ μ μμ ν μ€νΈ μ½λκ° κ°λ°μ μ€μ¬μ΄λΌλ κ°λ μ΄ μ‘°κΈμ© μλΏκΈ° μμνλ€.
π§‘ λλ μ
μ€λμ Spring Boot μμμ JPAλ₯Ό μ λλ‘ νμ©ν΄ 보며λλ©μΈ μ€κ³λΆν° λ°μ΄ν° μ μ₯, μ‘°ν, ν μ€νΈκΉμ§ νλμ κΈ°λ₯ νλ¦μ μ²μλΆν° λκΉμ§ ꡬνν΄ λ³Ό μ μμλ€.
νΉν, μ§μ 쿼리λ₯Ό μμ±νμ§ μκ³ λ μνλ λ°μ΄ν°λ₯Ό μ‘°νν μ μμλ κ²½νμ΄ μ κΈ°νκ³ , λ°λλ‘ μλνλ μ΄ νλ¦μ΄ μ΄λ»κ² λμνλμ§ μ νν μκ³ μμ΄μΌλ§ μ λλ‘ νμ©ν μ μλ€λ μ λ λκΌλ€.
λ¨μν ‘λμκ°κΈ°λ§ νλ μ½λ’λ₯Ό λ§λλ κ² μλλΌ, ꡬ쑰μ μΌλ‘ μ μ€κ³λ μ ν리μΌμ΄μ μ λ§λλ λ²μ μ°μ΅νκ³ μλ€λ κ°κ°μ΄ μ μ μκΈ΄λ€.