今日、私は自分自身をだまして多くの時間を無駄にしたことをしました。 。 。
MyBatisの設定では、このような設定の行がありました。プログラマーの好奇心から、私はこの設定が何をするかを検索して見つけました。
<name = "callsettersonnulls" value = "true"/>
インターネット上の多くの偉大なマスターからの回答の後、私はついにほとんど理解していませんでした。
一般的なクエリでは、マップを使用してクエリ結果を受け入れると、クエリ結果nullを持つフィールドは自動的に無視され、パラメーターを取得するときにnullポインター例外が報告されます。
このプロパティが設定されている場合、MyBatisはこれらのフィールドを無視しません。これらのキーを取得できますが、値はnullです。これも便利です。
ここに落とし穴があります。この設定では、さらに2つの特別な状況があります。
1.クエリ全体のすべてのフィールドに値がない場合、つまり、0レコードが見つかった場合、受け入れられたマップの結果は何ですか?
答えは、nullのマップではなく、すべてのキー値nullを持つマップを受信するということです。
2. 1つのフィールドのみを照会してマップでそれを受け取る場合、現時点でnullの結果は何ですか?
答えは、nullのマップを受け取るということです。これは上記の反対です。
要約します
上記は、紹介されたMyBatis CallSetterSonnullsの構成分析です。それがあなたに役立つことを願っています。ご不明な点がございましたら、メッセージを残してください。編集者は時間内に返信します!