Сессия без сохранения состояния внутри @Transactional
В настоящее время у меня проблема с выполнением транзакции внутри сеанса без сохранения состояния.
На уровне сервиса я определил транзакцию, используя @Transactional
аннотация (которая требуется, потому что методы должны быть в одной транзакции). Внутри метода я создаю новую сущность Car
, Тем не менее, я также должен создать в лежащих в основе методов пользовательские преобразования внутри сеанса без сохранения состояния (это сделано для производительности), как это
StatelessSession session = getSessionFactory().openStatelessSession();
Transaction transaction = session.beginTransaction()
// create and setup CarRequirements entity
transaction.commit;
Проблема в том, что сущность CarRequirements
имеет внешний ключ к сущности Car
, Поэтому, когда я пытаюсь зафиксировать основную транзакцию, возникает исключение, потому что, очевидно, Car
объект еще не передан в базу данных.
Есть ли способ отложить принятие нижележащей транзакции или принудительное принятие Car
юридическое лицо?
1 ответ
Либо вы определяете отношения между CarRequirements и Car (каскад), либо вы должны сначала сохранить Car, а затем сохранить CareRequirements.