set parameters for delete query

This commit is contained in:
Athou
2013-07-25 09:12:56 +02:00
parent 9bac3f424f
commit 02f1090fe7
3 changed files with 28 additions and 17 deletions

View File

@@ -1,26 +1,36 @@
package com.commafeed.backend.services;
import java.util.Date;
import javax.ejb.Schedule;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Stateless
public class CleaningService {
protected final static Logger log = LoggerFactory.getLogger(CleaningService.class);
@Inject
ApplicationSettingsService applicationSettingsService;
@PersistenceContext
EntityManager em;
// @Schedule(hour = "*")
protected void cleanOldStatuses() {
int keepStatusDays = applicationSettingsService.get()
.getKeepStatusDays();
if (keepStatusDays > 0) {
// every day at midnight
@Schedule(hour = "*", minute = "*", persistent = false)
private void cleanOldStatuses() {
Date threshold = applicationSettingsService.get().getUnreadThreshold();
if (threshold != null) {
log.info("cleaning old statuses");
Query query = em.createNamedQuery("Statuses.deleteOld");
query.setParameter("date", threshold);
query.executeUpdate();
}
}