я встретился с проблемой при выполнении запроса в @Transitional методеспящий режим транзакционной и SQL запрос против критерии запроса
Ниже приведен код:
@Test
@Rollback
@Transactional
public void testFindOneReportOrderWithTwoItemWithSameFnsku() throws Exception
{
//Prepare the order
Session session = sessionFactory.getCurrentSession();
ReportOrder order = new ReportOrder();
order.setId(111111);
order.setCustomerId("test customer");
session.persist(order);
// session.flush();
System.out.println("Start ====================");
System.out.println("criteria search:");
session = sessionFactory.getCurrentSession();
System.out.println(session.createCriteria(ReportOrder.class).list());
System.out.println("sql query:");
System.out.println(session.createSQLQuery("SELECT * FROM Orders").list());
System.out.println("End ==========================");
}
Тест:
Если Я прокомментирую строку 13 «session.flush» и строку 17,18 «поиск критериев» , тогда я не получу результата в sql-запросе
Если я комментирую линия 13 только тогда я буду получать все результаты в обоих критериев поиска и поиска SQL
Если я не комментирую линия 13 то я получить результат от SQL поиска.
Моя проблема:
- Почему я могу получить результат SQL запроса после Выполнить поиск критериев?
- Почему я не могу получить результат sql после sesson.persist()?