326.17. PostgreSQL 케이스
JdbcAggregationRepository
에서 사용하는 optimistic 잠금에 문제가 발생할 수 있는 특수 데이터베이스가 있습니다. PostgreSQL은 데이터 무결성 위반 예외(SQLState 23505)가 있는 경우 연결을 유효하지 않음으로 표시합니다. 이렇게 하면 중첩된 트랜잭션 내에서 연결을 효과적으로 사용할 수 없습니다. 자세한 내용은 이 문서에서 확인할 수 있습니다.
org.apache.camel.processor.aggregate.jdbc.PostgresAggregationRepository
는 JdbcAggregationRepository
를 확장하고 INSERT ...를 사용합니다. ON CONFLICT ..
statement to provide optimistic locking behavior.
이 설명은 (기본 집계 테이블 정의 포함)입니다.
INSERT INTO aggregation (id, exchange) values (?, ?) ON CONFLICT DO NOTHING
INSERT INTO aggregation (id, exchange) values (?, ?) ON CONFLICT DO NOTHING
자세한 내용은 PostgreSQL 문서에서 확인할 수 있습니다.
이 절이 사용되면 java.sql.PreparedStatement.executeUpdate()
호출에서 SQLState=23505를 사용하여 SQLException이 발생하지 않고 0
을 반환합니다. 추가 처리는 일반 JdbcAggregationRepository
와 동일하지만 PostgreSQL 연결을 유효하지 않은 것으로 표시하지는 않습니다.