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

JPA

Data source ์„ค์ •, JPA ๊ด€๋ จ ์„ค์ •

 

reference

์Šคํƒ€ํŠธ ์Šคํ”„๋ง ๋ถ€ํŠธ - ๊ตฌ๋ฉ๊ฐ€๊ฒŒ ์ฝ”๋”ฉ๋‹จ

์Šคํ”„๋ง ๋ถ€ํŠธ ๊ฐœ๋…๊ณผ ํ™œ์šฉ - ๋ฐฑ๊ธฐ์„ 


application.properties ๋˜๋Š” application.yml ํŒŒ์ผ์— ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

DataSource ์„ค์ •ํ•˜๊ธฐ

JPA๋‚˜ MySQL๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด Spring Boot๋Š” ์ž๋™์œผ๋กœ ์„ค์ •์„ ์ธ์‹ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ DataSource ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค.

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/__dbname__?useSSL=false&serverTimezone=Asia/Seoul
spring.datasource.username=
spring.datasource.password=

์Šคํ‚ค๋งˆ ์ƒ์„ฑํ•˜๊ธฐ

spring.jpa.hibernate.ddl-auto=create

create: ๊ธฐ์กด ํ…Œ์ด๋ธ” ์‚ญ์ œ ํ›„ ๋‹ค์‹œ ์ƒ์„ฑ

create-drop: create์™€ ๊ฐ™์œผ๋‚˜ application ์ข…๋ฃŒ ์‹œ์ ์— ํ…Œ์ด๋ธ” DROP

update: ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„๋งŒ ๋ฐ˜์˜

ํ•˜์ง€๋งŒ username ใ…ก> nickname ์œผ๋กœ ๋ณ€๊ฒฝ ์‹œ username ๊ทธ๋Œ€๋กœ, nickname ์ƒˆ๋กœ ์ƒ์„ฑ๋œ๋‹ค!

๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ ์‹œ์—๋Š” ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์œ ์šฉํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ์œผ๋‚˜ ์šด์˜ ์‹œ์—๋Š” ์ ˆ๋Œ€ ์“ฐ์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.

validate: ์—”ํ‹ฐํ‹ฐ์™€ ํ…Œ์ด๋ธ”์ด ์ •์ƒ์ ์œผ๋กœ ๋งคํ•‘๋˜์—ˆ๋Š”์ง€๋งŒ ํ™•์ธ

none: ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ

ddl-auto ์ ์šฉ ์œ ๋ฌด ์ •ํ•˜๊ธฐ

spring.jpa.generate-ddl=false

ํ•ด๋‹น ์˜ต์…˜์ด true ์ผ ๋•Œ ddl-auto๋กœ ์„ค์ •ํ•œ ์„ค์ •์ด ์ž‘๋™ํ•œ๋‹ค.

false์ด๋ฉด db ๊ณ ์œ ์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ์ˆ˜๋™์œผ๋กœ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋ฉด ๋œ๋‹ค.

์‹คํ–‰๋˜๋Š” SQL๋ฌธ ๋ณด๊ธฐ

spring.jpa.show-sql=true

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ ํƒํ•˜๊ธฐ

spring.jpa.database=mysql

MySQL ์—”์ง„ ์ค‘์— INNO DB

spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

๋กœ๊ทธ ๋ ˆ๋ฒจ ์ •ํ•˜๊ธฐ

logging.level.org.hibernate=info

 

โœจ ์šด์˜์šฉ ์•ˆ์ •์ ์ธ ์˜ต์…˜์€?

spring.jpa.hibernate.ddl-auto: validate /* entity ๋งคํ•‘ relation db์— ๋งคํ•‘์ด ๋˜๋Š” ์ƒํ™ฉ์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” ์˜ต์…˜ */
spring.jpa.generate-dll=false /* dll ์— ๋ณ€๊ฒฝ์„ ๊ฐ€ํ•  ๊ฒƒ์€ ์•„๋‹ˆ๊ธฐ์— ๊บผ์ฃผ๊ณ  */

'JPA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Entity Life Cycle  (0) 2021.01.21
Entity, Entity Manager  (0) 2021.01.21
JPA Annotation  (0) 2021.01.21
JPA  (0) 2021.01.21