0

コード :

<int-jdbc:inbound-channel-adapter
        query="SELECT USER_ID,BOOK_ID FROM BOOK WHERE ROWNUM &lt;= 11"
        channel="index-back-data" data-source="dataSource"
        max-rows-per-poll="10"
        update=" ? "
        row-mapper="DataRowMapper">
    <int:poller fixed-delay="10000" />
</int-jdbc:inbound-channel-adapter>

問題 :

BOOK テーブルをポーリングしているときに、bookid が null になる可能性があるため、更新プロパティを使用して削除する方法を教えてください。

更新で条件付き削除を次のように使用できますか :bookId != null ? 'DELETE FROM BOOK WHERE USER_ID = :userId AND BOOK_ID = :bookId : DELETE FROM BOOK WHERE USER_ID = :userId AND BOOK_ID IS NULL

どんな助けでも大歓迎です!

4

1 に答える 1

1

book テーブルに null の主キーを持つ行が存在することを許可している場合、データの整合性の問題が発生する可能性があると思います。それは少し編集的なので、どうですか:

update="DELETE FROM BOOK WHERE (USER_ID = :userId AND BOOK_ID = :bookId) OR (USER_ID = :userId AND BOOK_ID is null)"
于 2013-01-24T22:19:57.127 に答える