em.getTransaction().begin();
StringData sd = em.find(StringData.class, key);
System.out.println("Old value: " + sd.getData());
sd.setData(newValue);
// em.persist(sd);
em.getTransaction().commit();
正如你所看到的,我不是要求persist
,它注释掉了,因为我是干运行此代码第一。然而,事实证明它并不是非常干燥。在检查数据库时,我发现数据发生了变化(幸运的是它是一个测试数据库)。是否JPA/Hibernate的保存,即使不调用persist
显然我对Hibernate/JPA的理解是有缺陷的。不要求拨打persist
始终需要更改数据?如果没有,是什么时候保存的规则是什么?
但你在调用commit? – 2012-02-08 16:20:45