From a93a07431dffae335378ae31778e9f5ce532b020 Mon Sep 17 00:00:00 2001 From: Markus Kreth Date: Thu, 14 Nov 2019 21:57:19 +0100 Subject: [PATCH] ClubEvent hat nun delete flag --- .../vaadinclubhelper/dao/ClubEventDaoImpl.java | 9 ++++++--- .../clubhelper/vaadinclubhelper/data/ClubEvent.java | 10 ++++++++++ src/main/resources/schema/ClubEvent.hbm.xml | 6 +++++- src/main/resources/schema/version2.sql | 3 +++ 4 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/schema/version2.sql diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/ClubEventDaoImpl.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/ClubEventDaoImpl.java index e03920c..1c35f75 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/ClubEventDaoImpl.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/ClubEventDaoImpl.java @@ -50,7 +50,8 @@ public class ClubEventDaoImpl extends AbstractDaoImpl implements Club } } added.removeAll(current); - } else { + } + else { current = new HashSet<>(); event.setPersons(current); for (Person p : updated) { @@ -95,7 +96,8 @@ public class ClubEventDaoImpl extends AbstractDaoImpl implements Club type.setId(obj.getId()); query = entityManager.createNativeQuery( "INSERT INTO clubevent_addon (id, competition_type) VALUES (:eventId,:eventtype)"); - } else { + } + else { query = entityManager .createNativeQuery("UPDATE clubevent_addon SET competition_type=:eventtype WHERE id=:eventId"); } @@ -109,7 +111,8 @@ public class ClubEventDaoImpl extends AbstractDaoImpl implements Club @Override @Transactional public void delete(ClubEvent entity) { - entityManager.remove(entityManager.contains(entity) ? entity : entityManager.merge(entity)); + entity.setDeleted(true); + super.save(entity); } } diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/ClubEvent.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/ClubEvent.java index 8920463..99e6bed 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/ClubEvent.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/ClubEvent.java @@ -39,6 +39,8 @@ public class ClubEvent extends BasicItem implements EntityAccessor { private String organizerDisplayName; + private boolean deleted; + @ManyToMany private Set persons; @@ -207,6 +209,14 @@ public class ClubEvent extends BasicItem implements EntityAccessor { this.competitionType = competitionType; } + public boolean isDeleted() { + return deleted; + } + + public void setDeleted(boolean deleted) { + this.deleted = deleted; + } + @Override public int hashCode() { final int prime = 31; diff --git a/src/main/resources/schema/ClubEvent.hbm.xml b/src/main/resources/schema/ClubEvent.hbm.xml index cfc251e..1193b02 100644 --- a/src/main/resources/schema/ClubEvent.hbm.xml +++ b/src/main/resources/schema/ClubEvent.hbm.xml @@ -22,6 +22,10 @@ name="allDay"> + + + @@ -38,6 +42,6 @@ foreign-key="id" cascade="save-update"> - + diff --git a/src/main/resources/schema/version2.sql b/src/main/resources/schema/version2.sql new file mode 100644 index 0000000..952d770 --- /dev/null +++ b/src/main/resources/schema/version2.sql @@ -0,0 +1,3 @@ +ALTER TABLE `clubhelper`.`ClubEvent` ADD deleted SMALLINT(1) NOT NULL DEFAULT 0; + +UPDATE `clubhelper`.`version` SET `version` = '13' WHERE (`id` = '1'); \ No newline at end of file