Spring Hibernate在计划函数内无法运行?
我让代码在这样的时间表中运行Spring Hibernate在计划函数内无法运行?,spring,spring-boot,hibernate,scheduled-tasks,Spring,Spring Boot,Hibernate,Scheduled Tasks,我让代码在这样的时间表中运行 org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: ca.store.models.Store.followers, could not initialize proxy - no Session at org.hibernate.collection.internal.AbstractPersistentCollection
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: ca.store.models.Store.followers, could not initialize proxy - no Session
at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:602) ~[hibernate-core-5.3.12.Final.jar:5.3.12.Final]
at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:217) ~[hibernate-core-5.3.12.Final.jar:5.3.12.Final]
at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:581) ~[hibernate-core-5.3.12.Final.jar:5.3.12.Final]
at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:148) ~[hibernate-core-5.3.12.Final.jar:5.3.12.Final]
at org.hibernate.collection.internal.PersistentSet.iterator(PersistentSet.java:188) ~[hibernate-core-5.3.12.Final.jar:5.3.12.Final]
at java.base/java.lang.Iterable.forEach(Iterable.java:74) ~[na:na]
at ca.sdaw.product.models.services.ProductUpdateNotificationScheduler.lambda$sendUpdates$4(ProductUpdateNotificationScheduler.java:90) ~[classes/:na]
at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na]
at ca.sdaw.product.models.services.ProductUpdateNotificationScheduler.sendUpdates(ProductUpdateNotificationScheduler.java:89) ~[classes/:na]
at ca.sdaw.product.models.services.ProductUpdateNotificationScheduler$1.run(ProductUpdateNotificationScheduler.java:67) ~[classes/:na]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-5.1.10.RELEASE.jar:5.1.10.RELEASE]
at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:93) ~[spring-context-5.1.10.RELEASE.jar:5.1.10.RELEASE]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[na:na]
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) ~[na:na]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]
@Autowired
ThreadPoolTaskScheduler taskScheduler;
private void createJob(String timezone) {
ZonedDateTime zoned = LocalDate.now().atTime(12, 01).atZone(ZoneId.of(timezone));
log.info("Create job for " + timezone + " at " + zoned.toString());
taskScheduler.schedule(
new Runnable() {
@Override
public void run() {
sendUpdates(timezone);
}
},
new Trigger() {
@Override
public Date nextExecutionTime(TriggerContext triggerContext) {
return Date.from(zoned.toInstant());
}
}
);
}
public void sendUpdates(String timezone) {
//some spring repository code that uses hibernate
}