From 453d8514884aafcb39a36baaedc6ae4d26eb01d8 Mon Sep 17 00:00:00 2001 From: Markus Kreth Date: Sun, 27 Jan 2019 01:56:14 +0100 Subject: [PATCH] Update of Subentities of Person, Database manages create and update fields. --- .../vaadinclubhelper/dao/AbstractDaoImpl.java | 6 --- .../vaadinclubhelper/dao/PersonDaoImpl.java | 8 +-- src/main/resources/schema/version1.sql | 49 +++++++++++++++++++ 3 files changed, 54 insertions(+), 9 deletions(-) diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/AbstractDaoImpl.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/AbstractDaoImpl.java index 1afed99..1f9cf88 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/AbstractDaoImpl.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/AbstractDaoImpl.java @@ -1,6 +1,5 @@ package de.kreth.vaadin.clubhelper.vaadinclubhelper.dao; -import java.util.Date; import java.util.List; import javax.persistence.EntityManager; @@ -29,14 +28,9 @@ public abstract class AbstractDaoImpl implements IDao< @Override @Transactional public void save(T obj) { - - Date now = new Date(); - obj.setChanged(now); if (entityManager.contains(obj) || obj.hasValidId()) { - entityManager.merge(obj); } else { - obj.setCreated(now); entityManager.persist(obj); } } diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/PersonDaoImpl.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/PersonDaoImpl.java index f724ac7..ac55dbc 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/PersonDaoImpl.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/PersonDaoImpl.java @@ -31,20 +31,22 @@ public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao public void checkSubEntities(Person obj) { Startpass startPass = obj.getStartpass(); if (startPass != null && startPass.hasValidId() == false) { - persistIfNew(startPass); + persistOrUpdate(startPass); } List contacts = obj.getContacts(); if (contacts != null) { for (Contact c : contacts) { - persistIfNew(c); + persistOrUpdate(c); } } } @Transactional - public void persistIfNew(EntityAccessor c) { + public void persistOrUpdate(EntityAccessor c) { if (c.hasValidId() == false) { entityManager.persist(c); + } else { + entityManager.merge(c); } } diff --git a/src/main/resources/schema/version1.sql b/src/main/resources/schema/version1.sql index cca51b2..476eb69 100644 --- a/src/main/resources/schema/version1.sql +++ b/src/main/resources/schema/version1.sql @@ -63,3 +63,52 @@ CREATE TABLE `clubhelper`.`clubevent_addon` ( ON DELETE CASCADE ON UPDATE NO ACTION); +ALTER TABLE `adress` +CHANGE COLUMN `changed` `changed` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , +CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ; + +ALTER TABLE `altersgruppe` +CHANGE COLUMN `changed` `changed` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , +CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ; + +ALTER TABLE `attendance` +CHANGE COLUMN `changed` `changed` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , +CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ; + +ALTER TABLE `contact` +CHANGE COLUMN `changed` `changed` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , +CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ; + +ALTER TABLE `deleted_entries` +CHANGE COLUMN `changed` `changed` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , +CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ; + +ALTER TABLE `groupdef` +CHANGE COLUMN `changed` `changed` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , +CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ; + +ALTER TABLE `person` +CHANGE COLUMN `changed` `changed` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , +CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ; + +ALTER TABLE `persongroup` +CHANGE COLUMN `changed` `changed` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , +CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ; + +ALTER TABLE `pflichten` +CHANGE COLUMN `changed` `changed` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , +CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ; + +ALTER TABLE `relative` +CHANGE COLUMN `changed` `changed` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , +CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ; + +ALTER TABLE `startpaesse` +CHANGE COLUMN `changed` `changed` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , +CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ; + +ALTER TABLE `startpass_startrechte` +CHANGE COLUMN `changed` `changed` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , +CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ; + +UPDATE `clubhelper`.`version` SET `version` = '12' WHERE (`id` = '1'); \ No newline at end of file