1

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も使用しています。

4

0 に答える 0