Update of Subentities of Person, Database manages create and update fields.

master
Markus Kreth 7 years ago
parent 2acce1fde8
commit 453d851488
  1. 6
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/AbstractDaoImpl.java
  2. 8
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/PersonDaoImpl.java
  3. 49
      src/main/resources/schema/version1.sql

@ -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<T extends EntityAccessor> 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);
}
}

@ -31,20 +31,22 @@ public class PersonDaoImpl extends AbstractDaoImpl<Person> implements PersonDao
public void checkSubEntities(Person obj) {
Startpass startPass = obj.getStartpass();
if (startPass != null && startPass.hasValidId() == false) {
persistIfNew(startPass);
persistOrUpdate(startPass);
}
List<Contact> 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);
}
}

@ -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');
Loading…
Cancel
Save