在不同的函数中使用@Transaction“标记为回滚的事务”

时间:2018-06-16 15:26:49

标签: java

我有点麻烦。如果我用@Transactional和第二个没有签署第一个函数,我可以用函数registerAccountinDB来保存数据库。 如果我改变它,没有任何作用。这意味着函数registerAdresseinDB会起作用。我在调试模式下检查了对象Adresse的值数十次。一切都很好,但它不会持久。

我收到错误: javax.transaction.TransactionalException:提交事务注释和TQUType为REQUIRED的托管bean在提交期间遇到异常javax.transaction.RollbackException:标记为回滚的事务。

  @Transactional
  public int registerAccountinDB(Accounts acc)
  {
  boolean ok;
  try{
      em.persist(acc);     
      ok = true;
     }
  catch(Exception e)
  {        
      ok = false;
      e.printStackTrace();
      return 0;
  }
  return 1;
  }

 @Transactional
  public int registerAdresseinDB(Adresse adr)
  {
  boolean ok;
  try{
      em.persist(adr);     
      ok = true;
     }
  catch(Exception e)
  {        
      ok = false;
      e.printStackTrace();
      return 0;
  }
  return 1;
  }

0 个答案:

没有答案