プレースホルダ付きのあいまいなクエリー、CLOBタイプのあいまいなクエリー
1.プレースホルダ付き?のあいまいなクエリー:
例えばクエリーt_nameフィールドには、変数nameのレコードが含まれます.
2.CLOBタイプのあいまいなクエリー:
開発中にCLOB型データのファジイクエリ(remarkのファジイクエリなど)に遭遇することが多く、解決策は以下の通りである.
次の方法は、ほとんどのデータベースに適用できます.
3.CLOBタイプの正確なクエリー:
例えばクエリーt_nameフィールドには、変数nameのレコードが含まれます.
List<Object> params = new ArrayList<Object>();
params.add("%" + name + "%");
String hql = "select t from Person t where t.t_name like ?";
List<Person> list = service.getPersonByHql(hql,params.toArray());
2.CLOBタイプのあいまいなクエリー:
開発中にCLOB型データのファジイクエリ(remarkのファジイクエリなど)に遭遇することが多く、解決策は以下の通りである.
params.add(remarkStr);
String hql = "select t from Person t where dbms_lob.instr(t.remark, ?,1,1)> 0";// Oracle
:Oracle DBMS_LOB.instr , clob N ;
Oracle DBMS_LOB.substr clob , 。 :DBMS_LOB.substr(remark,4000,1)
DBMS_LOB instr substr :http://ifindit.blog.sohu.com/163919197.html
http://blog.csdn.net/swordmanwk/article/details/6204611
次の方法は、ほとんどのデータベースに適用できます.
params.add("%" + remarkStr+ "%");
String hql = "select t from Person t where t.remark like ?";// ,
3.CLOBタイプの正確なクエリー:
params.add(remarkStr);
//String hql = "select t from Person t where t.remark = ?";// !!!
String hql = "select t from Person t where t.remark like ?";// ! : like, ,
: CLOB like, 。