Создание сеанса, который может длиться так долго, может привести к проблемам в пуле соединений.
Для этого вы можете просто вернуть объект без сохранения и получить еще одну запись в вашей системе, которая позволяет вам сохранятьполученный объект (с некоторой предыдущей проверкой).
Таким образом, вы избегаете сеанса клиента, который содержит данные перехода;вы управляете завершенными сущностями: после вычисления вы возвращаете полную сущность, а после проверки клиента вы получаете завершенную сущность.
Просто имейте в виду, что вы можете обновить / повторно присоединить вашу сущность к сеансу гибернации, прежде чем сохранить ее, потому чтоу вас может быть другой поток / клиент, который изменил его во время проверки клиента.