【发布时间】:2011-07-22 17:10:47
【问题描述】:
使用以下代码:
EntityManager manager = factory.createEntityManager();
manager.setFlushMode(FlushModeType.AUTO);
PhysicalCard card = new PhysicalCard();
card.setIdentifier("012345ABCDEF");
card.setStatus(CardStatusEnum.Assigned);
manager.persist(card);
manager.close();
当代码运行到这一行时,“卡片”记录不会出现在数据库中。但是,如果使用 FlushModeType.COMMIT,并使用这样的事务:
EntityManager manager = factory.createEntityManager();
manager.setFlushMode(FlushModeType.COMMIT);
manager.getTransaction().begin();
PhysicalCard card = new PhysicalCard();
card.setIdentifier("012345ABCDEF");
card.setStatus(CardStatusEnum.Assigned);
manager.persist(card);
manager.getTransaction().commit();
manager.close();
它工作正常。从 eclipselink 的日志中,我可以看到前面的代码没有发出 INSERT 语句,而第二个代码发出了。
我在这里错过了什么吗?我正在使用 EclipseLink 2.3 和 mysql 连接/J 5.1
【问题讨论】:
标签: mysql jpa eclipselink