我正在独立模式下试验JPA(由 Hibernate 支持)。我注意到以下代码成功地将数据库值更改为“乱码”:
A a = em.find(A.class, 1);
a.setA1("garbled");
entityTransaction.begin(); // line 3
entityTransaction.commit(); // line 4
em.close();
在第 3 行之前没有其他事务begin()。EntityTransaction 的 API 规范中使用的语言似乎另有说明,或者在使用begin()和commit()划分JPA实体事务的模型中可能有些违反直觉?请注意,第3行和第 4行是必需的,因为将它们注释掉不会更改数据库值。