package io.trygvis; import io.trygvis.model.*; import io.trygvis.queue.*; import org.slf4j.*; import org.springframework.stereotype.*; import org.springframework.transaction.annotation.*; import java.util.*; import javax.persistence.*; import static org.springframework.transaction.annotation.Propagation.*; @Component public class UpdateArticeCallable implements AsyncService.AsyncCallable { private final Logger log = LoggerFactory.getLogger(getClass()); private final Random r = new Random(); @PersistenceContext private EntityManager entityManager; // @Transactional(propagation = REQUIRES_NEW) public void run() throws Exception { log.info("UpdateArticeJob.run: BEGIN"); Date now = new Date(); log.info("now = {}", now); TypedQuery
q = entityManager.createQuery(entityManager.getCriteriaBuilder().createQuery(Article.class)); List
list = q.getResultList(); log.info("Got {} articles", list.size()); Article a = list.get(r.nextInt(list.size())); a.setUpdated(new Date()); entityManager.persist(a); log.info("UpdateArticeJob.run: END"); } }