최대 절전 모드 일괄 삽입을 사용하는 파일에서 100 개 레코드를 삽입하려고합니다. 트랜잭션 내에서 로직을 래핑하면 예상대로 작동 할 것입니다. 예를 들어 배치 3 개 생성 중입니다. 300 개의 레코드 중 하나를 선택하고 트랜잭션 내에서 로직을 래핑하면 세 번째 일괄 처리에 문제가 발생하면 트랜잭션이 1 번째 및 2 번째 롤백으로 롤백됩니다.트랜잭션 내에서 다중 배치 삽입
0
A
답변
2
항상 트랜잭션에서 배치를 래핑하십시오. 트랜잭션 당 100 개의 삽입을 일괄 처리하는 경우 모든 항목이 정상이면 모든 항목이 커밋됩니다. 또한 일괄 처리 삽입 속도를 높이기 위해 무국적 세션을 사용하는 것이 좋습니다. Hibernate 문서의 Batch processing 튜토리얼을 읽어보기를 강력히 추천한다.
0
요약하면 예상대로 작동합니다.
Hibernate에서 각 일괄 처리 삽입이 별도의 트랜잭션에 있어야한다는 제한은 없다. 하나의 트랜잭션에서 여러 배치 삽입을 수행하면 전체적으로 커밋되거나 롤백됩니다.
는 (물론, 당신이 거래 또는 거래의 이정표를 사용하여 중첩 된 경우 또 다른 이야기입니다.)
관련 문제
- 1. 트랜잭션 내에서 MySQL 트리거 변경
- 2. 효과적인 방법 : 다중 삽입을위한 하나의 트랜잭션 또는 다중 삽입을위한 다중 트랜잭션
- 3. Hibernate에 일렬로 삽입 - 배치 삽입
- 4. sqlite : 다중 삽입 트랜잭션에 대한 트랜잭션 ID를 생성하십시오.
- 5. 다중 행 삽입 내에서 LAST_INSERT_ID() 사용
- 6. 배치 작업 트랜잭션
- 7. 다중 스레드의 AMQP 트랜잭션
- 8. 트랜잭션 내에서 선택된 행을 업데이트하십시오.
- 9. 트랜잭션 내에서 데이터베이스 생성
- 10. 트랜잭션 내에서 org.hibernate.LazyInitializationException
- 11. SQL Server - 동일한 트랜잭션 내에서 테이블에 삽입 된 행을 선택하십시오.
- 12. Spring JTA 트랜잭션 내에서 로컬 트랜잭션 만들기
- 13. 트랜잭션 내에서 다중 스레드를 사용하여 데이터베이스 항목을 업데이트하는 방법은 무엇입니까?
- 14. JPA 다중 트랜잭션 관리자
- 15. MemSQL 다중 작업 트랜잭션
- 16. 지연로드 및 다중 트랜잭션
- 17. 다중 연결 트랜잭션 범위
- 18. Java 다중 삽입
- 19. MySQL 트랜잭션 내에서 자동 증가 ID 유지
- 20. 트랜잭션 내에서 sql 쿼리를 실행하면 부작용이 있습니까?
- 21. Spring에 다중 트랜잭션 관리자가있는 다중 데이터 소스
- 22. PHP MySQLi 다중 삽입
- 23. 다중 삽입을 막는 NHibernate 세션/트랜잭션
- 24. EJB는 항상 트랜잭션 내에서 실행되어야합니까?
- 25. 트랜잭션 내에서 READPAST 힌트를 사용해야합니까?
- 26. 트랜잭션 내에서 트랜잭션없는 EJB 호출하기
- 27. 트랜잭션 내에서 테이블 잘라 내기
- 28. TransactionScope 내에서 ADO.Net 트랜잭션 사용?
- 29. 데이터베이스 트랜잭션 내에서 쿼리 읽기
- 30. 푸른 표 스토리지 배치 삽입
내가 하나의 트랜잭션의 모든 배치를 포장 할 수 있습니다. – cooper
난 그냥 provoded 내 링크를 통해 갔고 내 최대 절전 모드 pojo 복잡한 개체의 그래프를 가지고 있으며, 그래서 내가 내가 그런 경우에 상태없는 세션을 사용할 수 없다는 것을 발견했다. 내가 틀렸다면. – cooper
@cooper 올바르지 않습니다. 최대 절전 모드가 필요하지 않은 pojos를 더티 체크하려고 할 때 (내가 읽은 것에서) 귀하의 경우에 상태 보존 세션이 필요합니다. 먼지를 관리하면 메모리 및 성능면에서 추가 오버 헤드가 발생합니다. –