В уровне услуг, мы получилиКак исключить метод @Transactional?
@Service
@Transactional(readOnly = false)
public abstract class GenericService
В слое хранилища, мы получили
public abstract class GenericRepository
В службе у нас есть метод сохранения, который вызывает метод сохранения репозитория, который
@Override
public void savePersist(T entity) {
getSession().persist(entity);
}
Все, что я хочу сделать, это сохранить объект «сущность» в сеанс спящего режима для дальнейшей обработки без фиксации или любой инструкции вставки в базу данных. , но на самом деле происходит сохранение «сущности» после запуска savePersist(). Я думаю, это из-за использования аннотации @Transactional для класса обслуживания. Но что мне делать для сохранения объекта в сеансе?
ли это желаемое поведение для всех ситуаций или просто для конкретного случая? В любом случае метод '' savePersist (T entity) '' 'предназначен для сохранения и фиксации изменений, поэтому, если вам нужно поведение, отличное от этого, для конкретной ситуации, лучше искать другие решения. Например, у вас может быть какая-то прокси-служба с '' 'readOnly = true''', которая вызовет' '' GenericRepository.savePersist (T entity) '' ', в результате весна будет нести прокси и не создаст новую транзакцию , поэтому предприятие не будет совершено. – vtor