spring aop 能拦截 hibernate pojo entity 的方法吗?

ctn_80 发布于 2014/07/22 17:21
阅读 486
收藏 0

我的想法是,在struts action 的方法中通过查询出来的数据库对象,调用get方法的时候,对该get方法进行拦截。

但现在我定义的pointcut如下,不能成功。

不知道有什么办法能实现我的这个想法不?

谢谢你的回答。

 @Pointcut("execution(* com.hibernate.table..*.get*(..))")

    private void checkHibernateEntityMethod() {
    }
    

    
    
package com.hibernate.table.entity;     
@Entity
@Table(name = "USER")
public class User implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    @Column(name = "name", length = 255, unique = true, nullable = false)
    private String name;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
  )    
    
    public class UserAction extends AbstractAction {
    @Resource
    private UserService userservice;
   private Integer id;
   public Integer getId(){
   return this.id;
   }
      public void setId(Integer id){
      this.id=id;
      }
  public void showuser() throws JSONException {
              User user = userservice.queryuserbyId(getId());
             if(null!=user)
              user.getName();
             
    }
    }
加载中
0
totyumengr
totyumengr
拦截entity本身是可以的。否则hibernate3的lazy-loading就实现不了了,对吧。hibernate是用CGlib做的。spring aop也支持。不是final就可以。
0
c
ctn_80
采用aspectj可实现
返回顶部
顶部