Hibernate事务问题

时间:2015-02-11 11:08:58

标签: java hibernate spring-aop

我有以下设置。我正在使用spring数据通过hibernate访问数据

public class Controller {

private ServiceA serviceA
public A someMethod () {
   A a = new A();
   .
   .
   .
   a=serviceA.add(a);
   .
   .
   return a;
 }
}

public class ServiceAImpl implements ServiceA {

public RepoA repoA

@Transcational 
@AnnotationUsedInAroundAspect(name="xyz")
public A add(A a) {
   A existingA = repoA.get(a.id);
   repoA.delete(existingA);
   return repoA.Save(a);

  }
}

public class Aspect {

   @Around("@annotation(a)")
   public Object AroundAspect(ProceedingJoinPoint joinPoint, AnnotationUsedInAroundAspect a) {
  Object value = joinPoint.proceed();
  /**
  Not all statements are flushed to db at this point
  */
  .
  .
  .
  return value;

}


}

在Aspect(注释部分周围),删除被刷新到DB但保存(保存新的A对象)还没有。但是如果删除了delete语句,那么在此时将save刷新到db。只刷新给定表上的第一个语句,其余的不在此时。但是一旦控件返回控制器,所有语句都会被刷新。有人可以帮我理解发生了什么或者hibernate是否存在问题?

0 个答案:

没有答案