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
, это закомментировано, потому что я сначала запускаю этот код.Однако, как оказалось, не так уж и сухо.После проверки базы данных я вижу, что данные изменены (к счастью, это тестовая база данных).
Видимо, мое понимание Hibernate / JPA неверно.Разве для изменения данных не требуется всегда звонить persist
?А если нет, то каковы правила, когда что-то сохраняется ?