refresh database events

master
Markus Kreth 7 years ago
parent fc9661714e
commit 089efc7faf
  1. 17
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/business/CalendarTaskRefresher.java
  2. 20
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/AbstractDaoImpl.java
  3. 2
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/IDao.java

@ -2,9 +2,12 @@ package de.kreth.vaadin.clubhelper.vaadinclubhelper.business;
import java.util.List; import java.util.List;
import javax.validation.ConstraintViolationException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -27,8 +30,18 @@ public class CalendarTaskRefresher {
public void synchronizeCalendarTasks() { public void synchronizeCalendarTasks() {
List<ClubEvent> events = business.loadEvents(null, true); List<ClubEvent> events = business.loadEvents(null, true);
for (ClubEvent e : events) { for (ClubEvent e : events) {
log.trace("try storing {}", e); if (dao.get(e.getId()) != null) {
dao.save(e); try {
log.trace("try inserting {}", e);
dao.save(e);
} catch (ConstraintViolationException | DataIntegrityViolationException ex) {
log.warn("Insert failed, updating {}", e);
dao.update(e);
}
} else {
log.trace("try updating {}", e);
dao.update(e);
}
log.debug("successfully stored {}", e); log.debug("successfully stored {}", e);
} }
} }

@ -11,7 +11,7 @@ import org.springframework.transaction.annotation.Transactional;
public abstract class AbstractDaoImpl<T> implements IDao<T> { public abstract class AbstractDaoImpl<T> implements IDao<T> {
@Autowired @Autowired
EntityManager em; protected EntityManager em;
private final Class<T> entityClass; private final Class<T> entityClass;
@ -23,14 +23,18 @@ public abstract class AbstractDaoImpl<T> implements IDao<T> {
@Override @Override
@Transactional @Transactional
public void save(T obj) { public void save(T obj) {
// EntityTransaction tx = em.getTransaction();
// tx.begin();
// try {
em.persist(obj); em.persist(obj);
// tx.commit(); }
// } catch (Exception e) {
// tx.rollback(); @Override
// } @Transactional
public T update(T obj) {
return em.merge(obj);
}
@Override
public T get(Object primaryKey) {
return em.find(entityClass, primaryKey);
} }
@Override @Override

@ -5,5 +5,7 @@ import java.util.List;
public interface IDao<T> { public interface IDao<T> {
void save(T obj); void save(T obj);
T update(T obj);
List<T> list(); List<T> list();
T get(Object primaryKey);
} }

Loading…
Cancel
Save