此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【yuanyuan110_l】截止到2008-08-02 13:47:32的历史汇总数据(不包括此帖):
发帖的总数量:2                        发帖的总分数:100                      每贴平均分数:50                       
回帖的总数量:47                       得分贴总数量:24                       回帖的得分率:51%                      
结贴的总数量:2                        结贴的总分数:100                      
无满意结贴数:1                        无满意结贴分:30                       
未结的帖子数:0                        未结的总分数:0                        
结贴的百分比:100.00%               结分的百分比:100.00%                  
无满意结贴率:50.00 %               无满意结分率:30.00 %                  
敬礼!

取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=yuanyuan110_l

解决方案 »

  1.   

    WA CGLIB啊,,,,冒失hibernate的核心类库。。
      

  2.   

    enhancer.setCallback(this);
    改成
    enhancer.setCallback(NoOp.INSTANCE);net.sf.cglib.proxy.NoOp 
    NoOp回调把对方法调用直接委派到这个方法在父类中的实现。
      

  3.   

    用NoOp.INSTANCE好象走不到你的拦截器里,呵呵,enhancer.setCallback(this); if(Purview.check(method.getName(), (String)args[1])) {
                result = arg3.invokeSuper(obj, args);
            }
    这样应该能走到拦截器里
      

  4.   

    15楼的解决方法是正确的,如果有多个回调可以用以下方式:(在CGLibProxy类里面)
      Callback[] callbacks =
                new Callback[] { new CGLibProxy(),  NoOp.INSTANCE };        enhancer.setSuperclass(clazz);    //设置要创建了类的类
            enhancer.setCallbacks(callbacks);