Имея код внизу, мы столкнулись с проблемой 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() {
}