@Query("FROM TABLE_1 WHERE FIEDL1=:f1 and FIELD2=:f2)
public Bean findByIndex(@Param('f1') String field1,@Param('f2')String field2);這樣的寫法,當(dāng)field1或者field2為空的時候,它拼出的sql是FIELD=null,并不正確。查到stackoverflow有這樣一種方式,query語句改為(FROM TABLE_A WHERE (:f1 is null or FIELD=:f1) and (:f2 is null or FIELD2=:f2)),這種方式可以正確得到結(jié)果,但是這種方法生成的語句查看執(zhí)行計劃并不能用到索引。另一種方法是直接改方法名,變?yōu)閒indByField1AndField2。這種方法是正確的,但是我真實的參數(shù)比較多,方法名稱會太長,無法使用。有什么辦法,當(dāng)field1為空的時候,它自動生成FIELD1 is null。
添加回答
舉報
0/150
提交
取消