Im using SqlServer FREETEXTTABLE to search some products on a view, passing 3 parameters, the Strings to search, the first row to return and the last row to return (the usual pagination).
The code goes like this:
public List searchProducto(final String claves,final Integer pagina, final Integer nroFilas) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
String sql = "SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY RANK DESC) AS RowNr, * FROM vista_web_productos AS vwp INNER JOIN FREETEXTTABLE( producto,clave,:name) as ftt ON ftt.[KEY]=vwp.id_web) t WHERE RowNr BETWEEN :inicio AND :fin";
SQLQuery query = (SQLQuery) session.createSQLQuery(sql);
query.addEntity(VistaWebProductoVO.class).setString("name",claves).setInteger("inicio", ((pagina - 1) * nroFilas)+1 ).setInteger("fin", ((pagina) * nroFilas) );
List list = query.list();
return list;
}
});
}
コードをテストすると、動作する場合もあれば (通常、最初は問題なく動作する場合もあります)、動作しない場合もあります。特に、テストをデバッグし、続行ボタン (f5) をすぐに押さないと、機能しません。問題の原因に関するアイデアはありますか?Spring 3も使用しています。