`
lz_cleaner
  • 浏览: 28488 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

请教一个关于hibernate的拦截器(Interceptor)的问题。

阅读更多
我的业务要求是,当A的属性发生改变后,要改变B的一些属性(B是A的一个属性)。
映射文件的结构
  <bean id="userDAO" parent="transactionProxyTemplate">
    <property name="proxyInterfaces">
      <list><value>com.journal.dao.UserDAO</value></list>
    </property>
    <property name="target">
      <bean class="com.journal.dao.hibernate.UserDAOHibernate">
        <property name="sessionFactory">
          <ref local="sessionFactory"/>
        </property>
      </bean>
    </property>
  </bean>

  <bean id="transactionProxyTemplate" abstract="true" lazy-init="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    <property name="transactionManager">
      <ref bean="transactionManager"/>
    </property>
    <property name="transactionAttributes">
      <props>
        <prop key="save*">PROPAGATION_REQUIRED</prop>
        <prop key="update*">PROPAGATION_REQUIRED</prop>
        <prop key="remove*">PROPAGATION_REQUIRED</prop>
        <prop key="create*">PROPAGATION_REQUIRED</prop>
        <prop key="submit*">PROPAGATION_REQUIRED</prop>
        <prop key="withdraw*">PROPAGATION_REQUIRED</prop>
        <prop key="distribute*">PROPAGATION_REQUIRED</prop>      
      </props>
    </property>
  </bean>

  <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory">
      <ref local="sessionFactory"/>
    </property>
  </bean>

  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
      <ref local="dataSource"/>
    </property>
  </bean>
分享到:
评论
8 楼 zhangpeng8394 2007-12-28  
用aop 做比较好,这样不会打乱程序的结构
7 楼 laukin 2007-12-28  
既然B是A的一个属性,况且 这又是一个单一业务,非一类问题的业务,总觉的用拦截器不太合适, 倒不如在Service中程序控制,级联更新更舒服。
6 楼 kyo100900 2007-10-06  
当用户在执行UserAction的Delete方法的时候,必然会调用你UserService的那个Delete方法对不对?
用Spring写一个Action的after拦截器是不成问题吧(我这里是用Struts2的拦截器,Spring肯定有更强大的),这个时候你就可以在拦截器里通过传过来已经删除的User id号把数据库记录给更新了。
5 楼 lz_cleaner 2007-09-21  
怎么就没人关注一下呢?
4 楼 lz_cleaner 2007-09-20  
能否再具体的说说呢。
3 楼 tom.duan 2007-09-20  
可否转换一下思路,使用Spring的AOP来拦截,按照你的需求,在update/delete A时候触发拦截器,调用B相关的方法来修改B的数量……这样就不用考虑映射问题了
2 楼 lz_cleaner 2007-09-20  
怎么就光有人看,没人回呢?
现在这得人气比原来低了好多啊。
1 楼 lz_cleaner 2007-09-19  
具体说一下:比如User中有个字段是Group,一个user的缺席变成了True,或者这个user被删除了,这时就得修改Group的数量(减一),大概的业务需求就是这样的。

刚开始的时候我在sessionfactory中注入的拦截器,可是不知道怎么将已经减一的那个group持久化到数据库中?

请问我应该在什么地方注入拦截器好?

相关推荐

    利用反射和动态代理机制实现自定义拦截器Interceptor

    然后,我们需要定义一个拦截器Interceptor,该拦截器将在方法调用前后执行某些操作。在这里,我们定义了before()和after()两个方法,分别在方法调用前和调用后执行。 ```java public class Interceptor { public ...

    Hibernate事件框架之拦截器使用源代码

    为了更好地控制持久化行为,Hibernate 提供了一个强大的事件处理机制,其中就包括了拦截器(Interceptor)。拦截器允许开发者在对象状态变化时执行自定义逻辑,比如更新时间戳、记录审计日志等。 #### 定义拦截器 ...

    Struts2 拦截器 Interceptor

    定义拦截器类**:假设我们有一个名为`ReIn`的拦截器类,该类需要实现`Interceptor`接口,并重写三个方法:`intercept()`、`init()`和`destroy()`。 ```java public class ReIn implements Interceptor { @...

    Struts2拦截器(Interceptor)

    Struts2拦截器(Interceptor) Struts2拦截器(Interceptor)

    jfinal中拦截器(Interceptor)的参数注入

    jfinal中拦截器(Interceptor)的参数注入jfinal中拦截器(Interceptor)的参数注入

    详解Retrofit Interceptor(拦截器) 拦截请求并做相关处理

    Retrofit Interceptor(拦截器) 是一个非常重要的组件,在 Retrofit 框架中扮演着关键角色。拦截器可以拦截请求并做相关处理,典型的处理方式是修改 header,但我们也可以在拦截器内部添加统一参数等。 Interceptor ...

    STRUTS2:拦截器Interceptor

    STRUTS2:拦截器Interceptor

    struts2 Interceptor拦截器

    2. **如何实现**:Struts2提供了一个灵活的Interceptor框架,开发者可以通过实现Interceptor接口来自定义拦截器,也可以通过继承已有的拦截器实现来进行扩展。 3. **配置方式**:Interceptor的配置通过Struts2的配置...

    拦截器的使用示例Interceptor

    拦截器可以形成一个链式结构,当一个请求到达时,会按照注册的顺序依次调用每个拦截器的`preHandle()`方法。只有当所有`preHandle()`方法都返回`true`时,请求才会继续传递到控制器。然后在请求处理完后,会逆序...

    SpringMVC中使用Interceptor拦截器

    在Spring MVC框架中,Interceptor(拦截器)是一个强大的工具,用于在请求被控制器处理之前或之后执行特定的逻辑。它们可以用来实现通用的功能,如权限验证、日志记录、性能统计等,避免在每个控制器方法中重复编写...

    spring boot加入拦截器Interceptor过程解析

    本文的示例代码可以在 GitHub 上的 spring-boot-all 项目中找到,该项目提供了一个完整的 Spring Boot 项目示例,包括拦截器Interceptor的配置和使用。 结论 本文详细介绍了 Spring Boot 框架中的拦截器...

    struts2 拦截器interceptor教程 示例源码

    struts2 拦截器_教程.zip

    CXF拦截器(Interceptor)的使用

    每一个处理步骤实际上就是一个拦截器,它们按照预先定义好的顺序执行,可以对流经的消息进行读取、修改或阻止。当消息从服务器返回到客户端时,这一过程也会逆向地再次经过这些拦截器,确保消息的完整性、安全性以及...

    MyBatis拦截器:给参数对象属性赋值的实例

    在这个特定的实例中,我们讨论的是一个用于给参数对象属性赋值的拦截器。这个拦截器的主要目标是在执行增删改操作时,自动为数据模型对象的特定属性(如创建人、创建时间、修改人、修改时间等)赋值。 在MyBatis中...

    mybatis 分页拦截器及拦截器配置

    MyBatis中的拦截器(Interceptor)是基于Java的动态代理机制实现的,它可以拦截执行SQL的生命周期中的某些环节,如:预处理、结果映射等。在分页拦截器中,它会在执行查询之前对SQL进行修改,自动添加LIMIT和OFFSET...

    uni-app 请求拦截器

    【uni-app请求拦截器】是基于uni-app框架实现的一种机制,它允许开发者在发送网络请求前和接收到响应后执行自定义的操作。这种机制对于统一处理请求头、数据格式、错误处理以及添加全局的请求前后的逻辑非常有用,极...

    struts2 拦截器的使用(继承抽象拦截器)

    在Struts2中,拦截器是基于Java的动态代理机制实现的,它们按照配置的顺序形成一个拦截器链。每个拦截器都可以在Action执行之前或之后执行特定的任务,而无需修改Action本身。这遵循了“开闭原则”,使得代码更易于...

    SpringMVC的拦截器(Interceptor)和过滤器(Filter)的区别与联系

    在Java Web开发中,Spring MVC框架提供了两种机制来处理请求:拦截器(Interceptor)和过滤器(Filter)。它们都是在请求被控制器处理之前和之后执行的一系列预处理和后处理操作,但它们在功能、使用场景和工作原理...

Global site tag (gtag.js) - Google Analytics