【问题标题】:EntityManager.persist() doesn't save to databaseEntityManager.persist() 不保存到数据库
【发布时间】:2013-12-31 00:28:21
【问题描述】:

EntityManager.persist() 不会使用我添加到项目中的新实体 bean 保存到数据库。以前类似地添加 bean 保存到数据库中。

我已尝试添加EntityManager.getTransaction().commit(),这会导致错误和EntityManager.flush(),但会导致TransactionRequiredException

任何帮助将不胜感激。

【问题讨论】:

  • 可能有不同的原因。首先,检查您的 persistence.xml。您是否列出了实体或行“false”?

标签: java ejb entitymanager persist


【解决方案1】:

persist() 之前添加EntityManager.getTransaction().begin(),然后在之后添加commit()

【讨论】:

    【解决方案2】:

    所有的事务操作都应该保持在开始和提交之间。

    EntityManager.getTransaction().begin()
      .
      .  
      EntityManager.persist();
      EntityManager.flush()
      .
      .
     EntityManager.getTransaction().commit()
    

    【讨论】:

      【解决方案3】:

      谢谢! begin 调用是这里缺少的东西,而且我正在使用 JTA,这意味着我必须像这样管理它:

      UserTransaction transaction = (UserTransaction)new InitialContext().lookup("java:comp/UserTransaction");
      transaction.begin();
      EntityManager em = getEntityManager();
      em.persist(YourBean);
      transaction.commit();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-21
        • 1970-01-01
        • 2017-06-16
        • 2018-05-12
        • 1970-01-01
        相关资源
        最近更新 更多