Json으로 파싱한 데이터를 @PostConstruct 어노테이션을 사용해 인텔리제이 시작과 함께 2311개의 데이터를 저장할려고 했습니다.yml 설정 파일의 ddl - auto 값은 create 였습니다. jpa:
hibernate:
ddl-auto: create
show-sql: true
SQL 쿼리가 잘 작동해 데이터베이스에 저장되게 됩니다.문제는 그 후 부터 였습니다.
yml 파일의 ddl - auto 5개의 설정중 update 혹은 validate 로 작성하여 인텔리제이를 실행하면Json 으로 파싱한 오픈 API의 데이터가 저장되어 있기 때문에 SQL 쿼리가 나가지 않는것이 정상으로 생각했습니다.하지만 validate 로 실행하면 에러가 발생해 추가적인 비즈니스 로직을 작성할수 없다고 생각했고, update 로 두었더니 create 설정과 동일하게 SQL 쿼리가 나갔습니다.
필자가 생각하기에는 @PostConstruct라는 어노테이션이 빈을 초기화 할때 실행하는 로직인데, ddl - auto 설정은 빈을 초기화 할때 실행하기 때문에 create 와 update 가 동일하게 실행되는것 같습니다.
yml 설정을
update로 두고@PostConstruct를 주석처리 하였더니 잘 해결되었습니다.jpa: hibernate: ddl-auto: update show-sql: true
JPQL 로 쿼리를 작성해도 되며, Spring Data Jpa 쿼리 메소드를 작성하여 데이터베이스에 저장된 데이터를 필터링 할수 있습니다.