文字列が等しいとテストで判断された場合のMyBatisは有効になりません

  MyBatisフレームワークを使用してMySQLデータベースを操作する場合、着信文字列priceFlagの値が「0」であると判断されると、価格属性の降順でソートされます。次のxmlステートメントは無効です。

<if test="priceFlag != null and priceFlag == '0'">
      ORDER BY price DESC
</if>

  理由分析:
  MyBatisは解析にOGNL式を使用します。OGNL式では、「0」は文字に解析されます。javaは厳密に型指定されているため、charとStringは等しくないため、ifタグのSQLは解析されません。

  解決策:
  この問題解決するには、ifテストの判断ステートメントを次のいずれかの方法に変更します。

<if test='"0" == priceFlag'>

  または

<if test='"0".equals(priceFlag)'>

  または

<if test="'0'.toString() == priceFlag">

  変更が完了した後、SQLステートメントを解析できます。

おすすめ

転載: blog.csdn.net/piaoranyuji/article/details/108280023