package com.bee.common.hibernate.callback;
import java.sql.SQLException;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
/**
* 查询单项结果
*
* @author Bee
*
* @param <T>
*/
public class SingelResultHibernateCallback<T> implements HibernateCallback<T> {
String hql;
public SingelResultHibernateCallback(String hql) {
this.hql = hql;
}
@SuppressWarnings("unchecked")
public T doInHibernate(Session session) throws HibernateException,
SQLException {
Query query = session.createQuery(hql);
return (T) query.uniqueResult();
}
}
分享到:
相关推荐
Assert.notNull(action, "Callback object must not be null"); SessionFactory sessionFactory = getSessionFactory(); if (sessionFactory == null) { throw new InvalidDataAccessApiUsageException(...
2. **异常转换**:它将Hibernate的异常转换为Spring的DataAccessException,这样整个应用程序可以有一致的异常处理策略,而不用处理多种不同来源的异常。 3. **延迟加载支持**:HibernateTemplate自动处理延迟加载...
Callback接口是模板设计模式在HibernateTemplate中的体现之一。它定义了执行Hibernate操作的标准形式,即`doInHibernate`方法,此方法接收一个`Session`参数。开发者可以通过实现这个接口来定义自己的数据库操作逻辑...
在DAO中,我们可以通过`getHibernateTemplate()`获取HibernateTemplate实例,进一步进行CRUD操作。如果需要原生的Session,可以使用HibernateCallback来操作。 3. **使用HibernateCallback**: HibernateCallback是...
`JdbcTemplate`遵循模板方法设计模式,通过回调函数(Callback)机制,允许用户在特定的接口中实现自定义的行为。例如,`JdbcTemplate`提供了一个`ConnectionCallback`接口,用户可以实现这个接口的`doInConnection...
这些方法通常会接受一个回调函数,即Callback接口的实现。用户在回调接口的实现中编写与数据库交互的具体逻辑,例如指定SQL语句。例如,以下代码展示了如何使用JdbcTemplate执行一个自定义的操作: ```java ...