[SPRING] Spring JDBC batchUpdate를 사용할 때 생성 된 키를 가져 오는 방법이 있습니까?
SPRINGSpring JDBC batchUpdate를 사용할 때 생성 된 키를 가져 오는 방법이 있습니까?
JDBC를 사용하고 있으며 일괄 처리 삽입을 원하지만 다음 라운드 삽입을 위해 생성 된 키가 필요합니다 -이를 수행하기 위해 어쨌든 있습니까?
MapSqlParameterSource [] batchArgs ....
DAL.getNamedParameterTemplate (). batchUpdate ( "INSERT INTO ...", batchArgs);
감사
해결법
-
==============================
1.스프링 프레임 워크 사람들은이 문제에 대한 해결책을 시도했다. 그러나 솔루션이 모든 JDBC 드라이버에서 작동한다는 것을 보장 할 방법이 없다는 것이 명백 해지자 그들은 그 시도를 포기했습니다. 이는 JDBC 스펙이 생성 된 키가 일괄 업데이트 후에 사용 가능하게 보장하지 않기 때문입니다. JDBC 드라이버는이 기능을 자유롭게 구현할 수 있습니다. 경우에 따라 기본 데이터베이스가 생성 된 키를 반환하지 않을 수 있으므로 드라이버가이 기능을 지원할 수 없습니다.
스프링 프레임 워크 사람들은이 문제에 대한 해결책을 시도했다. 그러나 솔루션이 모든 JDBC 드라이버에서 작동한다는 것을 보장 할 방법이 없다는 것이 명백 해지자 그들은 그 시도를 포기했습니다. 이는 JDBC 스펙이 생성 된 키가 일괄 업데이트 후에 사용 가능하게 보장하지 않기 때문입니다. JDBC 드라이버는이 기능을 자유롭게 구현할 수 있습니다. 경우에 따라 기본 데이터베이스가 생성 된 키를 반환하지 않을 수 있으므로 드라이버가이 기능을 지원할 수 없습니다.
따라서 JDBC로 직접 작업하는 경우에도 데이터베이스 및 JDBC 드라이버가 생성 된 키를 사용할 수 있는지 확인해야합니다.
필자는 MySQL 5.0 JDBC 드라이버로 약간의 노력으로이를 달성 할 수 있었지만 이전 버전의 MySQL을 지원해야하기 때문에 프로덕션 애플리케이션에 솔루션을 통합하지 못했음을 기억합니다.
-
==============================
2.db 시퀀스를 사용하여 다음 기본 키 값을 가져 와서 insert 문에서 사용하십시오.
db 시퀀스를 사용하여 다음 기본 키 값을 가져 와서 insert 문에서 사용하십시오.
from https://stackoverflow.com/questions/2423815/is-there-anyway-to-get-the-generated-keys-when-using-spring-jdbc-batchupdate by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Fileupload가 Primefaces에서 작동하지 않습니다. (0) | 2019.05.06 |
---|---|
[SPRING] PackagesToScan을 검사하는 동안 일부 클래스를 무시하십시오. (0) | 2019.05.06 |
[SPRING] Bean에 대한 액세스를 해결하기 위해 컨텍스트에 등록 된 Bean 확인자가 없습니다. (0) | 2019.05.06 |
[SPRING] Spring MVC, 컨트롤러 내부에서 다른 컨트롤러 호출하기 (0) | 2019.05.06 |
[SPRING] SAXParseException; src-resolve : 이름 '...'을 (n) '유형 정의'구성 요소로 해석 할 수 없습니다. (0) | 2019.05.06 |