我的项目是Spring和Hibernate的Web应用程序。我需要对我的DAO层返回的数据执行一些例行操作,并提交事务并关闭会话。我尝试使用带有这样注释的方面:
@AfterReturning(pointcut = "execution(* com.dao..*.*(..))", returning = "result")
public void afterReturning(JoinPoint joinPoint, Object result){
processResult(result);
}
或使用
@Around("execution(* com.dao..*.*(..))")
但是在任何一种情况下我都得到了像这样的Hibernate异常:
org.hibernate.TransientObjectException:object引用未保存的瞬态实例 - 在刷新之前保存瞬态实例
当然,如果我在我的服务中应用相同的操作,一切都会有效:
public void serviceMethod(Object param) {
Object result = dao.getObject(param);
processResult(result);
}
'因为我需要对每个DAO方法的结果使用processResult我不愿意使用后一种方法,并且非常感谢关于如何使用这两个方面或其他替代方法的一些建议....