2016-06-01 6 views
1

私はSIで比較的新しいです(私はSIバージョン0.6から1でいくつかの仕事をしたので私は「比較的」と言いますが、私はそれをやめなければなりませんでした。 .5)、今はPOCのプロトタイプをいくつか書いています。その中の1つでは、簡単な方法でカスタマイズしたいjdbcChannelMessageStoreを使ってチャンネルを設定しました。 MESSAGE_BYTES列をbyteaからtextに変更します。春の統合でjdbcChannelMessageStoreをカスタマイズする

私はその変更を含めるようにschema-postgresql.sqlを変更し、INSERT用のjdbcステートメントのみを書き直すことができることを願っています。しかし、文自体が簡単に変更可能であっても、パラメータの設定は、addMessageToGroupメソッド内のjdbcTemplate.update自体の内側のラムダの内側に埋め込まれているため、設定しないでください。したがって、唯一の解決策は、addMessageToGroupメソッド全体をオーバーライドすることです。単純なjdbc挿入よりも多くのロジックが含まれているため、良い解決策ではないようです。

最後に、私は自分のコードに非常に大きなハックとしてコメントしたことがありました。 DefaultLobHandlerを実際ににオーバーライドしないでください。ではなく、setString(...)を代わりに使用します。

私たち自身のスキーマ構造および/または私たち自身の文を持っているJdbcChannelMessageStoreをカスタマイズする方法がありますが、この「ビッグハック」のようなものを使用しない:

だから、私は質問や提案がありますか?

良い方法がない場合は、jdbcUpdate内のラムダの代わりに、準備されたステートメントフィールドセッターをそれ自身の保護された(またはパブリック)メソッドに置くことをお勧めしますか?

ありがとうございます。

答えて

0

おそらく、オーバーライド可能なメソッドに委任することで、そのロジックをオーバーライドしやすくする必要があります。

Contributions are always welcome :)

+0

私はそれを行う時間があることを望む、実際に大きな変更ではない、私はコードを書くよりも貢献者ガイドラインを読むためにもっと時間がかかると思う... :) – amsmota

+0

問題はありません - JIRA Issue](https://jira.spring.io/browse/INT-4081)を参照してください。 –