JPA
- ์๋ฐ ORM ํ์ค, ์ธํฐํ์ด์ค์ ๋ชจ์. Object Relational table Mapping
- ๊ธฐ์กด์ sql ๋ฐ์ดํฐ ์ค์ฌ ์ค๊ณ์์ ๊ฐ์ฒด ์ค์ฌ ์ค๊ณ๋ก์ ํจ๋ฌ๋ค์ ์ ์ฉ
configuration
- spring.jpa.hibernate.ddl-auto
- DDL (๋ฐ์ดํฐ ์ ์์ด. create, alter, drop... ๋ฑ๋ฑ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๊ด๋ จ ๋ช ๋ น์ด) Auto Generation ์ต์ (DDL SQL ์คํฌ๋ฆฝํธ ์๋ ์์ฑ)
59. Database initialization
An SQL database can be initialized in different ways depending on what your stack is. Or of course you can do it manually as long as the database is a separate process. 59.2 Initialize a database using Hibernate You can set spring.jpa.hibernate.ddl-auto e
docs.spring.io
์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๋ฐ๋ผ์ ์๋์ผ๋ก detectํด์ create-drop ๋๋ none์ผ๋ก ์ ๊ณตํจ.
in-memory์์ ์ด์ ์๋ฒ๋ก ๋ฐ์ ํ ๋ ๋ฌธ์ ๊ฐ ๋ ์ ์์ผ๋ ddl-auto ๋ช ์์ ์ผ๋ก ์ค์ ํ๊ฑฐ๋ ๋ค๋ฅธ ๋ฉ์ปค๋์ฆ์ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด๊ธฐํ ํ ์ฌ์ฉ
์คํ ์, ๋ฃจํธ ๊ฒฝ๋ก์ import.sql ํ์ผ์ ์คํํจ. ํ ์คํธ๋ ๋ฐ๋ชจ์์๋ ์ฌ์ฉํด๋๋๋, ์ด์์์๋ ์ง์ํ๋ ๊ธฐ๋ฅ.
none, validate, update, create-drop ์ ๊ฐ์ด ๋ค์ฏ๊ฐ์ ์ค์ ๊ฐ์ ์ฌ์ฉ ํ ์ ์์
- none ์คํํ์ง ์์
- validate ๋ณ๊ฒฝ ์ฌ๋ถ ํ์ธ ํ ์ถ๋ ฅ
- update ์คํค๋ง ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ์๋ง ์คํ
- create-drop ์คํ ์, drop -> create, ์ข ๋ฃ ์ drop
JPA ์ฌ์ฉ ์, Entity ๋งคํ์ด ํ์์ ์.
service๋จ์ @Transactional ์ด๋ ธํ ์ด์ ํ์
๋ ํ์งํ ๋ฆฌ ์์ฑ ์, EntityManger ์์ฑ์๋ก ๋ฃ์ด์ค์ผํจ.