-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
jpa의 경우 벌크성 insert 지원이 안되나요???
22.01.01 00:55 작성 조회수 510
0
답변을 작성해보세요.
2
정수원
지식공유자2022.01.03
네
해당 부분은 스프링 배치 영역에서 조금 벗어난 부분이라 자세하게 답변드리기는 곤란한 점 양해해 주시기 바랍니다.
일괄처리는 다음과 같을 것입니다
INSERT INTO person (name) VALUES
('name1'),
('name2'),
('name3');
기본적으로 JPA 에서는 Auto Increment 일 경우엔 위 설정 방식을 지원하지 않습니다.
Auto Increment가 아닐 경우엔 spring.jpa.properties.hibernate.jdbc.batch_size=10 과 같이 해서 일괄처리가 되긴 합니다.
그리고 DB 종류에 따라 설정을 다르게 해야 할 수도 있습니다.
그래서 MYSQL 에서는 시퀀스 전략을 auto_increment 가 아닌 Table 로 해야 합니다.
그리고 MYSQL 같은 경우에 jdbc:mysql:://DB주소:포트/스키마?rewriteBatchedStatements=true 와 같이 rewriteBatchedStatements 의 옵션도 주어야 합니다.
그리고 사실 이 기술은 jpa 기술이 아닌 jdbc batch 기술인데 jpa 가 내부적으로 활용하고 있을 뿐입니다.
관련해서는 여러 자료가 있으니 참고해 주시기 바랍니다.
0
rere
질문자2022.01.01
db는 인메모리 h2를 사용중인데 h2 로그를 보니 Multiple rows insert가 되지 않습니다. 혹시 방법이 있다면 알려주시면 감사하겠습니다.!!!!
답변 2