菜鸟问题

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]