hibernate 根据占位符设值
请看:
sqlstr.append(" and p.product_Name like '%:productName%'");
Query countQuery = session.createSQLQuery(sqlstr.toString());
query.setString("productName", pq.getProductName());
是根据productName名去设置值;为啥不行?
------解决方案--------------------and p.product_Name like :productName这样行不行啊
------解决方案--------------------Java code
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;
}
------解决方案--------------------
sqlstr.append(" and p.product_Name like '%':productName'%'");
不知道这样行不行。
不过用Hibernate还真没有像楼主这样搞过。
------解决方案--------------------
and p.product_Name like :productName
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()+"%");