๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ฐœ๋ฐœ์ด์•ผ๊ธฐ

[summary] แ„‰แ…ณแ„‘แ…ณแ„…แ…ตแ†ผ แ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ - แ„แ…ฉแ„ƒแ…ณแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ณแ„‘แ…ณแ„…แ…ตแ†ผ แ„‡แ…ฎแ„แ…ณ, แ„‹แ…ฐแ†ธ MVC, DB แ„Œแ…ฅแ†ธแ„€แ…ณแ†ซ แ„€แ…ตแ„‰แ…ฎแ†ฏ day 3

๋ฐ˜์‘ํ˜•

JPA

- ์ž๋ฐ” ORM ํ‘œ์ค€, ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ์Œ. Object Relational table Mapping

- ๊ธฐ์กด์˜ sql ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ ์„ค๊ณ„์—์„œ ๊ฐ์ฒด ์ค‘์‹ฌ ์„ค๊ณ„๋กœ์˜ ํŒจ๋Ÿฌ๋‹ค์ž„ ์ ์šฉ

 

configuration

- spring.jpa.hibernate.ddl-auto

- DDL (๋ฐ์ดํ„ฐ ์ •์˜์–ด. create, alter, drop... ๋“ฑ๋“ฑ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๊ด€๋ จ ๋ช…๋ น์–ด) Auto Generation ์˜ต์…˜ (DDL SQL ์Šคํฌ๋ฆฝํŠธ ์ž๋™ ์ƒ์„ฑ)

https://docs.spring.io/spring-boot/docs/1.1.0.M1/reference/html/howto-database-initialization.html#howto-initialize-a-database-using-hibernate

 

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 ์ƒ์„ฑ์ž๋กœ ๋„ฃ์–ด์ค˜์•ผํ•จ.