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 с обновленным возрастом.