Spring Batch와 Quartz 를 이용한 배치 프로세스를 구현하고 JPA를 이용한 간단한 엔티티 설계 프로젝트
무엇보다 연관 관계의 주인 쪽에 값을 셋팅하는 것이 중요
일대다 양방향은 억지로 구현('다' 쪽에 @JoinColumn(insertable=false, updatable=false))할 수는 있으나 가급적 다대일 양방향을 사용해라
다대일 양방향 매핑이 무난하다.
ORDER <-> MEMBER 관계는 **다대일 양방향 매핑**
ORDER <-> DELIVERY 관계는 **일대일 양방향 매핑**
ORDER_ITEM <-> ORDER 관계는 **다대일 양방향 매핑**
ORDER_ITEM <-> ITEM 관계는 **다대일 양방향 매핑**
ITEM <-> CATEGORY 관계는 **다대다 관계를 다대일, 일대다 관계로 풀어서 매핑**
ITEM <-> ALBUM, MOVIE, BOOK 관계는 **싱글 테이블 전략으로 상속 관계 표현**
@ 엔티티 구조 및 이미지 자료는 김영한님의 인프런 강좌 내 일부 자료입니다.
application.yml
# springboot
server:
port: 8080
tomcat:
max-http-form-post-size: -1
# SPRING
spring:
datasource:
# 개선 커넥션 풀 db사용
hikari:
jdbc-url: jdbc:postgresql://<DB IP:PORT>/postgres
driver-class-name: org.postgresql.Driver
username: <DB USER>
password: <DB PW>
schema: PSS
jpa:
hibernate:
naming:
implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
ddl-auto: none
use-new-id-generator-mappings: true
show-sql: true
batch:
job:
names: ${job.name:NONE}
enabled: off
# 커스텀 설정
common:
file-path: csvFile
logging:
level:
org:
springframework: INFO