-
Notifications
You must be signed in to change notification settings - Fork 37
HQL практика - save c @Cleanup #6
Copy link
Copy link
Open
Description
В чём собственно говоря у меня была проблема, я понимаю, что происходит, не понимаю правильно ли я решил)
session.save(entity)
помечен как deprecated, оно ещё работает, но ругается. Хочет, чтобы использовали
session.persist(entity)
всё как бы ничего, можно было жить, однако, все наши entity не попадают в базу данных, я так понимаю, что для persist важно находится в рамках session.beginTransaction() и session.getTransaction().commit();
session.beginTransaction();
*** ALL INSERTIONS ***
session.getTransaction().commit();
то есть, я решил это так:
@Cleanup
Session session = sessionFactory.openSession();
session.beginTransaction();
Company microsoft = saveCompany(session, "Microsoft");
Company apple = saveCompany(session, "Apple");
Company google = saveCompany(session, "Google");
User billGates = saveUser(session, "Bill", "Gates",
LocalDate.of(1955, Month.OCTOBER, 28), microsoft);
User steveJobs = saveUser(session, "Steve", "Jobs",
LocalDate.of(1955, Month.FEBRUARY, 24), apple);
User sergeyBrin = saveUser(session, "Sergey", "Brin",
LocalDate.of(1973, Month.AUGUST, 21), google);
User timCook = saveUser(session, "Tim", "Cook",
LocalDate.of(1960, Month.NOVEMBER, 1), apple);
User dianeGreene = saveUser(session, "Diane", "Greene",
LocalDate.of(1955, Month.JANUARY, 1), google);
savePayment(session, billGates, 100);
savePayment(session, billGates, 300);
savePayment(session, billGates, 500);
savePayment(session, steveJobs, 250);
savePayment(session, steveJobs, 600);
savePayment(session, steveJobs, 500);
savePayment(session, timCook, 400);
savePayment(session, timCook, 300);
savePayment(session, sergeyBrin, 500);
savePayment(session, sergeyBrin, 500);
savePayment(session, sergeyBrin, 500);
savePayment(session, dianeGreene, 300);
savePayment(session, dianeGreene, 300);
savePayment(session, dianeGreene, 300);
session.getTransaction().commit();
только после этого прошёл нормально все тесты.
В случае с save() записи появлялись в базе данный только после @cleanup
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
