请看:
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()+"%");