2016-06-01 3 views
1

저는 SI가 비교적 새로 왔습니다. (SI 버전 0.6에서 1로 약간의 작업을했기 때문에 "상대적으로"라고 말합니다. 그러나 그때 멈춰야했고 이제 4.2에서 다시 나타납니다) .5) 지금은 POC를위한 프로토 타입을 작성 중입니다. 그 중 하나에서 jdbcChannelMessageStore에 의해 지원되는 채널을 구성했습니다.이 채널은 간단한 방법으로 사용자 정의하고 싶었습니다. MESSAGE_BYTES 열을 bytea에서 text로 변경합니다.스프링 통합에서 jdbcChannelMessageStore 사용자 정의하기

그래서 schema-postgresql.sql을 변경하여 변경 사항을 포함 시켰으며 INSERT에 대한 jdbc 문만 다시 쓸 수 있기를 바랍니다. 그러나 명령문 자체를 쉽게 변경할 수있는 경우에도 매개 변수 설정은 addMessageToGroup 메소드 내부의 jdbcTemplate.update 내부에있는 람다 내부에 있기 때문에 매개 변수 설정은 불가능합니다. 그래서 유일한 해결책은 전체 addMessageToGroup 메소드를 오버라이드하는 것인데, 간단한 JDBC 인서트보다 더 많은 로직을 포함하고 있기 때문에 좋은 해결책이 아닌 것 같습니다.

그래서 결국 나는 내 코드에 대해 매우 큰 해킹으로 주석을 달았습니다. 나는 DefaultLobHandler를 실제로 으로 오버라이드하지 않으며 대신에은 setString (...) 대신 lob을 사용한다.

우리 자신의 스키마 구조 및/또는 우리 자신의 진술을하는 JdbcChannelMessageStore을 사용자 정의 할 방법이 있나요이 "큰 해킹"같은 것을 사용하지 않고 :

는 그래서, 질문 및 제안이?

더 좋은 방법이 없다면 적어도 jdbcUpdate 내의 람다 대신 자신의 보호 된 (공개) 메소드에 준비된 명령문 필드 setter를 넣으라고 제안 할 수 있습니까?

미리 감사드립니다.

답변

0

아마도 재정의 할 수있는 방법을 위임하여 해당 논리를 쉽게 재정의해야합니다.

Contributions are always welcome :).

+0

나는 그 일을 할 시간이 있고, 실제로 큰 변화가 아니기를 바란다. 나는 기여자 지침을 읽는 데 코드를 쓰는 것보다 더 많은 시간이 걸릴 것이라고 생각한다. :) – amsmota

+0

문제 없음 - 나는 [ JIRA Issue] (https://jira.spring.io/browse/INT-4081)를 확인하십시오. –

관련 문제