1. HibernateCallback是一个接口,该接口只有一个方法doInHibernate(org.hibernate.Session session),该方法只有一个参数
Session。
2. 方法 doInHibernate 的方法体就是 Spring执行的持久化操作。
3. 使用HibernateTemplate执行execute(new HibernateCallback())方法,从HibernateCallback中得到session,在此session中做多个操作,并希望这些操作位于同一个事务中。
4. 回调实际就是一种事件触发模式,就象连环地雷一样,一旦触发一个,这个再触发另外一个,你在find这个方法被执行时,希望同时执行其他方法,就需要回调。
例如:
return (List<E>) getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException {
Criteria criteria = session.createCriteria(entityClass);
criteria.setFirstResult(pageSize * (pageIndex));
criteria.setMaxResults(pageSize);
return criteria.list();
}
});
如例子代码中,他希望在执行execute()时也执行HibernateCallback 中的一些方法。
5. HibernateTemplate提供这个HibernateCallback,
就是为了满足这种使用了HibernateTemplate的情况下,
仍然需要直接访问Session的需求而来的
它提供了在HibernateTemplate里面直接访问Session的能力
这个就是我们要使用HibernateCallback的原因.
分享到:
相关推荐
gethibernatetemplate的find方法,find(String queryString);find(String queryString , Object value);find(String queryString, Object[] values);findByExample(Object exampleEntity);findByExample(Object ...
整合了hibernate的getHibernateTemplate()使用方法 全面详细 带有相应的例子
getHibernateTemplate()方法
getHibernateTemplate()有模糊查询和 分页getHibernateTemplate()有模糊查询和 分页
弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...
find(String queryString , Object value); 示例:this.getHibernateTemplate().find("from bean.User u where u.name=?", "test"); 这样的例子里面还有很多
jsp中调用dao的getHibernateTemplate()时,报空指针
getHibernateTemplate分页-模糊查询.hibernate查询以及分页查询等方法使用。
HibernateTemplate对Hibernate Session操作进行了封装,而 HibernateTemplate.execute方法则是一封装机制的核心 *在spring的配置文件里,移植了整个hibernate.cfg.xml的内容。
通常,程序中采用实现HibernateCallback的匿名内部类来获取HibernateCallback的实例,方法doInHibernate()就是Spring执行的持久化操作。 24.3 Spring对Hibernate的简化 24.3.5 HibernateDaoSupport Spring为与...
解决getHibernateTemplate().save ()不能将数据保存到数据库的问题JusterDu 2016-03-15 08:38:57 1857
return (Card)this.getHibernateTemplate().get(Card.class, cardPass); } @Override public void updateCard(Card card) { // TODO Auto-generated method stub this.getHibernateTemplate().update(card...
HibernateDaoSupport封装了HibernateTemplate,而HibernateTemplate封装了Hibernate所提供几乎所有的的数据操作方法,如execute(HibernateCallback action),load(Class entityClass, Serializable id),save(final ...
getHibernateTemplate()查询 hibernate hql
在 DAO 实现类 BookDAO.java 代码如下: public List getRequiredBookByName(String name){ try{ List books=this.getHibernateTemplate(). find("from Book where bookname like '%"+name+"%'"); return books; }...
我就是问: getHibernateTemplate()这个方法里没有执行sql语句的方法,只能用hql语句吗?
Spring 的框架提供了getHibernateTemplate ().findByCriteria(detachedCriteria) 方法可以很方便地根据DetachedCriteria 来返回查询结 果。 DetachedCriteria 提供了 2 个静态方法 forClass(Class) 或 forEntityName...
this.getHibernateTemplate().save(entity); } @Resource(name="sessionFactory") //注入sessionFactory public void setSessionFactoryDI(SessionFactory sessionFactory) { ...
添加以下方法 ,loginaction的条件用这个来改 public boolean login(String username, String password) { // TODO Auto-generated method stub String param[]={username,password}; List list= this....
.相同点:在applicationConext.xml中 ... HibernateDaoSupport: 在impl中要调用的方法要getHibernateTemplate().delete(user); UserDaoHiberateImpl: 在impl中要调用的方法要hibernateTemplate.save(user);