请看:
sqlstr.append(" and p.product_Name like '%:productName%'");Query countQuery = session.createSQLQuery(sqlstr.toString());
query.setString("productName", pq.getProductName()); 是根据productName名去设置值;为啥不行?
sqlstr.append(" and p.product_Name like '%:productName%'");Query countQuery = session.createSQLQuery(sqlstr.toString());
query.setString("productName", pq.getProductName()); 是根据productName名去设置值;为啥不行?
public String searchByKey(){
if(key!=null && type!=null && key.length()>0 && type.length()>0){
condition="where b.type=? and b.title like ?";
allBook= bookService.search(condition,type,"%"+key+"%");
}
}
public List<Book> search(String condition, String type, String key) {
Session session = this.getSession();
List list=session.createQuery("from Book b "+condition).setString(0, type).setString(1, "%"+key+"%").list();
session.close();
return list;
}
不知道这样行不行。不过用Hibernate还真没有像楼主这样搞过。
query.setString("productName","%"+pq.getProductName()+"%");
应该是:
sqlStr.append(" and p.product_Name like :productName");
Query countQuery = session.createSQLQuery(sqlstr.toString());
query.setString("productName", "%"+pq.getProductName()+"%");
sqlStr.append(" and p.product_Name like :productName");
Query countQuery = session.createSQLQuery(sqlstr.toString());
query.setString("productName", "%"+pq.getProductName()+"%");