1.spring this.getHibernateTemplate().find如何模糊查询,比如“from Product p where p.name like %name%"怎么传递参数呢?
2.this.getHibernateTemplate().find方法都是返回List,如果我要查询的数量只有一个,应该怎么处理。
3.如果使用this.getHibernateTemplate()方法,应该怎么实现 session().flush(),session().flush();this.getSession().clear()功能
4.this.getHibernateTemplate()如何实现删除功能,this.getHibernateTemplate().delete 只能实现删除封装好的对象,如果我想实现自定义的hql就不行了,应该怎么处理
1.spring this.getHibernateTemplate().find如何模糊查询,比如“from Product p where p.name like %name%"怎么传递参数呢?
A:
String query = "from Product p where p.name like ?";
List find(query, "%XXX%");
2.this.getHibernateTemplate().find方法都是返回List,如果我要查询的数量只有一个,应该怎么处理。
A:
find方法返回的是list。只有一个的话,直接取第一个元素即可。
3.如果使用this.getHibernateTemplate()方法,应该怎么实现 session().flush(),session().flush();this.getSession().clear()功能
A:
this.getHibernateTemplate().flush()
this.getHibernateTemplate().clear()
4.this.getHibernateTemplate()如何实现删除功能,this.getHibernateTemplate().delete 只能实现删除封装好的对象,如果我想实现自定义的hql就不行了,应该怎么处理
A:
1.不要使用hibernateTemplate
2.楼主可以多去看看spring的api或者hibernate的
3.既然用了hibernate可以多用用criteria对象
[code="java"]
getHibernateTemplate().execute(new HibernateCallback(){
public HibernateTemplate doInHibernate(Session session)
throws HibernateException, SQLException {
//此处你已经拿到session,可以做任何想做的事
//问题1:设置参数
session.createQuery("hql").setParameter("param1", "value1");
//问题2:如果结果只有一个
Object object=session.createQuery("hql").uniqueResult();
//问题3
session.flush();
session.clear();
//问题4:自定义sql删除对象
session.createQuery("delete hql").executeUpdate();
return null;
}
});
[/code]