import org.hibernate.Session;
public class MyHibernateTemplate {
public void executeWithNativeSession(MyHibernateCallback callback) {
Session s = null;
try {
s = getSession();
s.beginTransaction();
// 要使用MyHibernateTemplate 对自定义的方法生成前后的模板,需要 对外发布一个接口MyHibernateCallback,并给调用方法一个 session,让他自己去定义要实现的逻辑。
callback.doInHibernate(s);
s.getTransaction().commit();
} catch (Exception e) {
s.getTransaction().rollback();
} finally {
//...
}
}
private Session getSession() {
// TODO Auto-generated method stub
return null;
}
public void save(final Object o) {
new MyHibernateTemplate().executeWithNativeSession(new MyHibernateCallback() {
public void doInHibernate(Session s) {
s.save(o);
}
});
}
public static void main(String[] args) {
new MyHibernateTemplate().executeWithNativeSession(new MyHibernateCallback() {
public void doInHibernate(Session s) {
s.save(null);
}
});
}
}
import org.hibernate.Session;
public interface MyHibernateCallback {
public void doInHibernate(Session s);
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。