본문 바로가기

Java/JPA4

[Spring boot] JPA Dialect(방언) 설정에 관하여 결론만 말하면 "Dialect 설정은 하지 않아도 된다." 입니다. 1. Dialect 란? ORM의 큰 특징중 하나는 객체 맵핑을 통해 자동으로 쿼리를 작성해주는 것입니다. 하지만 수 많은 DBMS 종류가 있고 각 종류마다 쿼리가 조금씩 다르기 때문에, 이를 알릴 수 있도록 데이터베이스 유형을 지정하도록 하는 것이 Dialect 설정 입니다. 이런 Dialect 설정은 연결되는 Springboot 실행 시, 연결되어있는 데이터베이스에 알맞게 자동으로 지정이 되므로, 특별한 이유가 존재하지 않는 이상 수동으로 설정할 필요가 없습니다. 여러가지 데이터베이스를 하나씩 연결하여 확인해보면 아래 로그와 같이 연결되는 DB에 알맞게 Dialect 설정이 되는 것을 확인할 수 있습니다. 저 처럼 인터넷에 떠돌아다니.. 2020. 11. 11.
Spring JPA Multiple Databases 설정 1. 다중 DB 설정 시, 알아야 할 것2. 소스코드2-1. Entity2-2. Repository2-3. DB Configuration2-3-1 application.properties2-3-2 Main Datasource2-3-3 Second Datasource4. Test4.1 hibernate 로그 확인4.2 DB 데이터 확인1. 다중 DB 설정 시, 알아야 할 것다중 DB는 Spring boot 처럼 Auto Configuration되지 않음설정파일(application.yml 또는 application.properties) 값을 읽어와서 연동 할 DB 수 만큼 Datasource를 수동 설정해야함설정파일 대신 코드로 직접 설정할 수 있는 방법도 있음주요 설정 내용리소스 경로 설정Reposito.. 2020. 4. 13.
Spring Data JPA Save(insert) 속도 최적화 대량의 데이터를 삽입하는 상황이 생겼습니다. 초창기에는 JPA Save함수를 반복문을 통해 호출해서 저장하게 구현을 했는데요. 처음에는 괜찮았으나, 삽입 할 데이터가 점점 많아지면서 삽입 시간이 굉장히 오래 걸리게 되었습니다. 그래서 최적화에 신경 쓰게 되었는되었습니다. 자바에서 데이터를 insert하는데 가장 방식은 Spring batch를 이용하여 JPA없이 Writer를 쓰는게 제일 빠릅니다. (관련 글을 추후 포스팅 예정...) 본 포스트에서는 Spring boot에서 JPA를 사용하여 트랜젝션을 최적화하여 속도를 향상시키는 방법으로 알아보겠습니다. 1. 잦은 save 함수 호출의 문제점 @Transactional @Override public S save(S entity) { if (entity.. 2020. 3. 13.
JPA (Java Persistence API) 이란? 기본 개념 및 이론 정리 보호되어 있는 글 입니다. 2019. 8. 1.