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 javax.validation.ConstraintViolationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@ -27,8 +30,18 @@ public class CalendarTaskRefresher {
public void synchronizeCalendarTasks() {
List<ClubEvent> events = business.loadEvents(null, true);
for (ClubEvent e : events) {
log.trace("try storing {}", e);
dao.save(e);
if (dao.get(e.getId()) != null) {
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);
}
}

@ -11,7 +11,7 @@ import org.springframework.transaction.annotation.Transactional;
public abstract class AbstractDaoImpl<T> implements IDao<T> {
@Autowired
EntityManager em;
protected EntityManager em;
private final Class<T> entityClass;
@ -23,16 +23,20 @@ public abstract class AbstractDaoImpl<T> implements IDao<T> {
@Override
@Transactional
public void save(T obj) {
// EntityTransaction tx = em.getTransaction();
// tx.begin();
// try {
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
public List<T> list() {

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

Loading…
Cancel
Save