Активен ли весенний AOP, когда я планирую ссылку на метод с аннотацией @Transactional - PullRequest
0 голосов
/ 13 сентября 2018

Имея код внизу, мы столкнулись с проблемой Hibernate Session, как показано ниже. (Субъект, имеющий геттер, выбрасывает это)

Мы подозреваем, что это связано с тем, что аннотация @Transactional не обрабатывается, поскольку прокси-объект не вызывает doSomething.

Возможно ли, что подобный код не будет обрабатывать аннотации?

Наша конфигурация AOP для транзакций:

<tx:annotation-driven transaction-manager="transactionManager" />


org.hibernate.LazyInitializationException: could not initialize proxy - no Session
        at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:146)
        at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:259)
        at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:73)


@Autowired
private TaskScheduler taskScheduler;

private ScheduledFuture future;

@PostConstruct
public void init() {
    schedule();
}

private void schedule() {
    if (future != null) {
        future.cancel(false);
    }
    final String cronTriggerValue = "CRON_VALUE_FROM_DB._MUST_BE_FROM_DB";
    future = taskScheduler.schedule(this::doSomething, new CronTrigger(cronTriggerValue));
}

@Transactional
@Caching(evict = { @CacheEvict(value = "someValue", allEntries = true) })
public void doSomething() {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...