Unlocking the Key to Success: Embracing Persistence with Persist
Метод persist() в Java используется для сохранения объекта в базе данных. Он помечает объект для постоянного хранения в базе данных и создает соответствующую запись в базе данных.
Вот пример кода, который демонстрирует использование метода persist():
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("myDatabase");
EntityManager entityManager = entityManagerFactory.createEntityManager();
// создаем новый объект
Customer customer = new Customer();
customer.setName("John");
customer.setAddress("123 Main St.");
customer.setPhone("555-555-1234");
// начинаем транзакцию
entityManager.getTransaction().begin();
// сохраняем объект в базе данных
entityManager.persist(customer);
// коммитим транзакцию
entityManager.getTransaction().commit();
// закрываем EntityManager
entityManager.close();
В этом примере мы создаем новый объект Customer и сохраняем его в базе данных с помощью метода persist(). Затем мы коммитим транзакцию и закрываем EntityManager.
Метод persist() относится к паттерну "единица работы", где все изменения в базе данных должны быть выполнены в одной транзакции. Если мы не вызовем метод commit() после вызова persist(), объект не будет сохранен в базе данных.
Кроме того, объект, переданный методу persist(), должен быть предварительно присвоен идентификатор, если он использует идентификаторы вручную. Например, если мы используем сущность с именем Customer, у которой есть поле id, мы должны установить идентификатор перед вызовом метода persist():
Customer customer = new Customer();
customer.setId(1);
customer.setName("John");
customer.setAddress("123 Main St.");
customer.setPhone("555-555-1234");
entityManager.persist(customer);
В этом примере мы установили идентификатор объекта Customer как 1 перед вызовом метода persist().
Также стоит отметить, что метод persist() не может использоваться для обновления существующих объектов. Для этого вместо этого используется метод merge().