From 855856754fe6da3d52f3deedd2d106ee13338743 Mon Sep 17 00:00:00 2001 From: Markus Kreth Date: Wed, 23 Jan 2019 05:12:15 +0100 Subject: [PATCH] PersonDao stores SubEntities (Startpass, Contact) --- .../vaadinclubhelper/dao/PersonDaoImpl.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) 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 8d9d4d1..fd627e2 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 @@ -1,10 +1,15 @@ package de.kreth.vaadin.clubhelper.vaadinclubhelper.dao; +import java.util.List; + import javax.persistence.TypedQuery; import org.springframework.stereotype.Repository; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Contact; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.EntityAccessor; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Startpass; @Repository public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao { @@ -13,6 +18,31 @@ public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao super(Person.class); } + @Override + public void save(Person obj) { + checkSubEntities(obj); + super.save(obj); + } + + public void checkSubEntities(Person obj) { + Startpass startPass = obj.getStartpass(); + if (startPass != null && startPass.hasValidId() == false) { + persistIfNew(startPass); + } + List contacts = obj.getContacts(); + if (contacts != null) { + for (Contact c : contacts) { + persistIfNew(c); + } + } + } + + public void persistIfNew(EntityAccessor c) { + if (c.hasValidId() == false) { + entityManager.persist(c); + } + } + @Override public Person findLoginUser(String username, String password) { TypedQuery query = entityManager.createNamedQuery(Person.QUERY_FINDLOGIN, Person.class);