对于我所读到的内容,事务中的EntityManager.flush()
不应提交数据。特别是,如果我回滚我的交易。
这是我正在运行测试的一小段代码:
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
em.persist(myEntity);
em.flush();
em.getTransaction().rollback();
em.close();
如果我查看MySQL(v.5.x),运行此代码后,我看到我的实体是持久的,即使我调用了rollback()。如果我删除em.flush()
,则实体不会保留。但我需要调用它才能更新ID。那么,怎么了?