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
자세한 내용은 PostgreSQL 문서에서 확인할 수 있습니다.
이 절이 사용되면 java.sql.PreparedStatement.executeUpdate()
호출에서 SQLState=23505를 사용하여 SQLException이 발생하지 않고 0
을 반환합니다. 추가 처리는 일반 JdbcAggregationRepository
와 동일하지만 PostgreSQL 연결을 유효하지 않은 것으로 표시하지는 않습니다.