Sobes.tech
Back to questions
Junior — Middle
53

Какие данные будут сохранены в базе данных, если вызвать методы persist или save для объекта Person и затем обновить возраст внутри транзакции?

Answer from AI

sobes.tech AI

Если вызвать метод persist или save для объекта Person в рамках транзакции, объект становится управляемым (attached) в контексте персистентности. При этом данные объекта будут сохранены в базе данных при коммите транзакции.

Если после вызова persist или save внутри той же транзакции изменить поле возраст (например, person.setAge(newAge)), то при коммите транзакции в базу будет записано обновленное значение возраста. Это происходит потому, что ORM (например, Hibernate) отслеживает изменения управляемых сущностей и автоматически синхронизирует их с базой данных.

Пример на Hibernate:

entityManager.getTransaction().begin();
entityManager.persist(person); // объект становится управляемым
person.setAge(30); // изменение поля
entityManager.getTransaction().commit(); // изменения сохранятся в базе

Итог: в базе данных будет сохранено состояние объекта Person с обновленным возрастом.