通过回调模式,把相同的部分抽取出来。
//通过构造HibernateCallback的匿名对象,调用doInHibernate方法,可以完成save操作
//关于session对事务的操作就抽取出来了
class Test
{
public static void main(String[] args)
{
Test1 t1 = new Test1();
t1.persistent(new HibernateCallback(){
public void doInHibernate(Session session) throws Exception{
session.save(object);
}
});
}
}
public class Test1
{
public void persistent(HibernateCallback hibernateCallback) {
Session session = HibernateUtils.getSession();
try
{
session.beginTransaction();
hibernateCallback.doInHibernate();
session.getTransaction.commit();
}
catch (Exception e)
{
session.getTransaction().rollback();
throw e;
}
}
}
public interface HibernateCallback
{
public void doInHibernate(Session session) throws Exception;
}
分享到:
相关推荐
5.2 Hibernate回调与拦截机制 5.3 Hibernate实用技术 第6章 Hibernate 实战——创建RedSaga论坛 6.1 目标 6.2 E-R建模还是对象建模 6.3 E-R建模及工具集 6.4 对象建模 6.5 项目的目录组织和基础设施 6.6 测试...
10. **Callback事件**:Hibernate允许在对象生命周期中的特定时刻(如加载、保存、更新和删除)注册回调方法,实现业务逻辑。 11. **Association Mapping关联映射**:Hibernate支持一对一、一对多、多对一、多对多...
通过回调方法如`@PrePersist`、`@PostLoad`等,开发者可以在特定生命周期阶段执行自定义逻辑。 通过仿写Hibernate的持久层框架,我们可以更好地理解这些概念并实践ORM的实现。`FrameTest`可能包含了实现这些功能的...
SSH框架整合分页——内部类回调函数 SSH(Spring、Struts2、Hibernate)是Java Web开发中常用的一种集成框架,它将Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面...
Hibernate提供了回调和拦截机制,允许在特定事件(如对象保存、更新、删除等)前后执行自定义代码。这在数据同步、日志记录或其他业务逻辑处理中非常有用。 **配置二级缓存** 配置二级缓存需要指定缓存策略(如read...
9. Callback事件:Hibernate支持在对象生命周期中的特定时刻触发回调方法,如预加载、加载、保存、更新和删除。源码中可能包含这些事件的监听器实现。 通过深入研究《Hibernate Quickly 源代码》,开发者可以全面...
Hibernate允许开发者定义对象的生命周期回调方法,如preInsert()、postInsert()、preUpdate()等,以便在对象状态改变时执行特定的业务逻辑。 **九、懒加载与立即加载** 懒加载(Lazy Loading)是一种优化策略,只在...
Hibernate允许开发者注册监听器,对对象的持久化过程进行干预,例如在对象保存前后的回调、状态改变的监听等。 综上所述,“hibernate.zip”文件中的内容应该涵盖了关于Hibernate框架的各个方面,包括基本概念、...
3. **回调接口** - **Interceptor**:此接口允许开发者监听Hibernate内部发生的事件,如对象加载、删除、保存和更新,从而实现定制的行为,如记录数据更改日志。 4. **映射接口** - **Type**接口:定义了...
Hibernate 提供了回调机制,如预加载(pre-load)、加载后(post-load)、预更新(pre-update)、预删除(pre-delete)等,允许开发者在特定操作前后执行自定义逻辑。 十一、性能优化 为了提升性能,开发者应关注...
拦截器和事件:这部分内容介绍了拦截器(Interceptors)以及原生事件系统和JPA回调的使用。 HQL与JPQL:Hibernate Query Language (HQL)和Java Persistence Query Language (JPQL)是Hibernate用于查询数据的语言。...
14. **事件监听器**:允许开发者自定义事件处理,如对象保存、更新、删除前后的回调函数。 15. **拦截器(Interceptor)**:类似于事件监听器,但能更深入地干预对象的生命周期,可以在对象的创建、加载、保存、...
最后,Hibernate的事件监听系统允许我们在特定操作前后执行自定义逻辑,例如,使用`@PrePersist`、`@PostLoad`等注解实现回调方法。 总之,《Hibernate 3.3 API中文版》文档覆盖了从基本的实体映射到复杂的查询、...
在本章中,我们将深入探讨Hibernate的高级特性,特别是关于对象的持久化实现和回调与拦截机制。首先,让我们详细解析Hibernate的实体对象生命周期。 在Hibernate中,实体对象经历了三种不同的状态,它们分别是: 1...
12. 拦截器和事件章节,介绍了拦截器(Interceptors)的使用,Hibernate声明式安全的配置,以及JPA回调的处理。 13. HQL与JPQL章节,详细说明了Hibernate查询语言(HQL)和Java持久化查询语言(JPQL)的语法、大小写...
9. **事件监听器和拦截器**:Hibernate允许开发者注册事件监听器和拦截器,对持久化操作进行自定义处理,如在对象保存前后的回调函数。 10. **多数据源支持**:通过SessionFactoryBuilder,Hibernate可以配置多个...
5.2 Hibernate回调与拦截机制 5.3 Hibernate实用技术 第6章 Hibernate 实战——创建RedSaga论坛 6.1 目标 6.2 E-R建模还是对象建模 6.3 E-R建模及工具集 6.4 对象建模 6.5 项目的目录组织和基础设施 6.6 测试...
Hibernate 4.3.9 支持更多的实体生命周期回调方法,如`@PrePersist`,`@PostLoad`等,让开发者能更好地控制数据的处理流程。 8. **异步事件监听**: 引入了异步事件监听器,允许开发者在不阻塞主线程的情况下执行...
10. **Callback事件**:Hibernate提供了一些生命周期回调方法,如preInsert、postLoad等,可以在对象的生命周期中插入自定义代码。 11. ** Criteria API**:这是一种更面向对象的查询方式,相比HQL,它更具有灵活性...
当第二行代码执行时,即尝试访问`user.getName()`,Hibernate会触发代理对象内部的回调机制。如果代理对象的`target`属性为空,那么Hibernate会发出SQL查询以加载实际的数据并创建真实的User对象,然后将其赋值给...