BP-772 add field validation
diff --git a/oKBereitschaftsplanungBackend/pom.xml b/oKBereitschaftsplanungBackend/pom.xml
index 08f2bba..ec6e3da 100644
--- a/oKBereitschaftsplanungBackend/pom.xml
+++ b/oKBereitschaftsplanungBackend/pom.xml
@@ -298,7 +298,10 @@
 		<!-- ############################################ -->
 		<!-- ###### NOT ip checked yet ################## -->
 		<!-- ############################################ -->
-
+		<dependency>
+			<groupId>org.glassfish.jersey.ext</groupId>
+			<artifactId>jersey-bean-validation</artifactId>
+		</dependency>
 
 
 		<!-- https://mvnrepository.com/artifact/org.eclipse.birt.runtime/viewservlets -->
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/StandbyPlanningApplication.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/StandbyPlanningApplication.java
index da97f38..2ea6fd8 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/StandbyPlanningApplication.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/StandbyPlanningApplication.java
@@ -61,7 +61,6 @@
 
 		packages("org.eclipse.openk", "io.swagger.jaxrs.listing");
 		// EncodingFilter.enableFor(this, GZipEncoder.class);
-		property("jersey.config.beanValidation.enableOutputValidationErrorEntity.server", "true");
 		property(ServerProperties.BV_SEND_ERROR_IN_RESPONSE, true);
 
 		LOGGER.info("start creating shadow tables and inserting data");
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/db/model/Organisation.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/db/model/Organisation.java
index 547c930..15171bd 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/db/model/Organisation.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/db/model/Organisation.java
@@ -63,8 +63,7 @@
 	}
 
 	/**
-	 * @param id
-	 *            the id to set
+	 * @param id the id to set
 	 */
 	public void setId(Long id) {
 		this.id = id;
@@ -78,8 +77,7 @@
 	}
 
 	/**
-	 * @param orgaName
-	 *            the orgaName to set
+	 * @param orgaName the orgaName to set
 	 */
 	public void setOrgaName(String orgaName) {
 		this.orgaName = orgaName;
@@ -93,13 +91,12 @@
 	}
 
 	/**
-	 * @param address
-	 *            the address to set
+	 * @param address the address to set
 	 */
 	public void setAddress(Address address) {
 		this.address = address;
 	}
-	
+
 	@Override
 	public int compareTo(AbstractEntity abstractEntity) {
 		return (getId() == abstractEntity.getId()) ? 1 : 0;
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/AddressDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/AddressDto.java
index e94a9f4..35f734b 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/AddressDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/AddressDto.java
@@ -12,11 +12,14 @@
  ********************************************************************************/
 package org.eclipse.openk.sp.dto;
 
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.eclipse.openk.sp.abstracts.AbstractDto;
+
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import org.eclipse.openk.sp.abstracts.AbstractDto;
 
 /**
  * The "Address" Data Transfer Object (DTO)
@@ -31,14 +34,27 @@
 	private static final long serialVersionUID = 1L;
 
 	private Long id;
+	@NotNull(message = "Postleitzahl ist nicht gesetzt")
+	@Size(max = 8, message = "Postleitzahl mit max. 8 Zeichen")
 	private String postcode;
+	@NotNull(message = "Ort ist nicht gesetzt")
+	@Size(max = 256, message = "Ort mit max. 256 Zeichen")
 	private String community;
+	@Size(max = 256, message = "Zusatz mit max. 256 Zeichen")
 	private String communitySuffix;
+	@NotNull(message = "Strasse ist nicht gesetzt")
+	@Size(max = 256, message = "Strasse mit max. 256 Zeichen")
 	private String street;
+	@NotNull(message = "Hausnummer ist nicht gesetzt")
+	@Size(max = 32, message = "Hausnummer mit max. 32 Zeichen")
 	private String housenumber;
+	@Size(max = 256, message = "Zone mit max. 256 Zeichen")
 	private String wgs84zone;
+	@Size(max = 32, message = "Koordinate mit max. 32 Zeichen")
 	private String latitude;
+	@Size(max = 32, message = "Koordinate mit max. 32 Zeichen")
 	private String longitude;
+	@Size(max = 256, message = "URL mit max. 256 Zeichen")
 	private String urlMap;
 
 	/**
@@ -49,8 +65,7 @@
 	}
 
 	/**
-	 * @param id
-	 *            the id to set
+	 * @param id the id to set
 	 */
 	public void setId(Long id) {
 		this.id = id;
@@ -64,8 +79,7 @@
 	}
 
 	/**
-	 * @param postcode
-	 *            the postcode to set
+	 * @param postcode the postcode to set
 	 */
 	public void setPostcode(String postcode) {
 		this.postcode = postcode;
@@ -79,8 +93,7 @@
 	}
 
 	/**
-	 * @param community
-	 *            the community to set
+	 * @param community the community to set
 	 */
 	public void setCommunity(String community) {
 		this.community = community;
@@ -94,8 +107,7 @@
 	}
 
 	/**
-	 * @param communitySuffix
-	 *            the communitySuffix to set
+	 * @param communitySuffix the communitySuffix to set
 	 */
 	public void setCommunitySuffix(String communitySuffix) {
 		this.communitySuffix = communitySuffix;
@@ -109,8 +121,7 @@
 	}
 
 	/**
-	 * @param street
-	 *            the street to set
+	 * @param street the street to set
 	 */
 	public void setStreet(String street) {
 		this.street = street;
@@ -124,8 +135,7 @@
 	}
 
 	/**
-	 * @param housenumber
-	 *            the housenumber to set
+	 * @param housenumber the housenumber to set
 	 */
 	public void setHousenumber(String housenumber) {
 		this.housenumber = housenumber;
@@ -139,8 +149,7 @@
 	}
 
 	/**
-	 * @param wgs84zone
-	 *            the wgs84zone to set
+	 * @param wgs84zone the wgs84zone to set
 	 */
 	public void setWgs84zone(String wgs84zone) {
 		this.wgs84zone = wgs84zone;
@@ -154,8 +163,7 @@
 	}
 
 	/**
-	 * @param latitude
-	 *            the latitude to set
+	 * @param latitude the latitude to set
 	 */
 	public void setLatitude(String latitude) {
 		this.latitude = latitude;
@@ -169,8 +177,7 @@
 	}
 
 	/**
-	 * @param longitude
-	 *            the longitude to set
+	 * @param longitude the longitude to set
 	 */
 	public void setLongitude(String longitude) {
 		this.longitude = longitude;
@@ -184,8 +191,7 @@
 	}
 
 	/**
-	 * @param urlMap
-	 *            the urlMap to set
+	 * @param urlMap the urlMap to set
 	 */
 	public void setUrlMap(String urlMap) {
 		this.urlMap = urlMap;
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/BranchDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/BranchDto.java
index e59c0e9..d8b88ee 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/BranchDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/BranchDto.java
@@ -12,6 +12,7 @@
  ********************************************************************************/
 package org.eclipse.openk.sp.dto;
 
+import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -29,6 +30,7 @@
 	/** default serial id. */
 	private static final long serialVersionUID = 1L;
 	private Long id;
+	@Size(max = 256, message = "Titel mit max. 256 Zeichen")
 	private String title;
 
 	public Long getId() {
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/CalendarDayDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/CalendarDayDto.java
index 3426b63..0be1550 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/CalendarDayDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/CalendarDayDto.java
@@ -14,6 +14,8 @@
 
 import java.util.Date;
 
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -34,7 +36,10 @@
 	private static final long serialVersionUID = 1L;
 
 	private Long id;
+	@NotNull(message = "Name ist nicht gesetzt")
+	@Size(max = 256, message = "Name mit max. 256 Zeichen")
 	private String name;
+	@NotNull(message = "Datum ist nicht gesetzt")
 	private Date dateIndex;
 
 	/**
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/ContactDataDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/ContactDataDto.java
index db9d1cd..c23b722 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/ContactDataDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/ContactDataDto.java
@@ -12,11 +12,14 @@
  ********************************************************************************/
 package org.eclipse.openk.sp.dto;
 
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.eclipse.openk.sp.abstracts.AbstractDto;
+
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import org.eclipse.openk.sp.abstracts.AbstractDto;
 
 /**
  * The "USER" Data Transfer Object (DTO)
@@ -31,11 +34,18 @@
 	private static final long serialVersionUID = 1L;
 
 	private Long id;
+	@NotNull(message = "Firma oder Privat setzen")
 	private Boolean isPrivate;
+	@NotNull(message = "Mobil ist nicht gesetzt")
+	@Size(max = 256, message = "Mobil mit max. 256 Zeichen")
 	private String phone;
+	@Size(max = 256, message = "Telefon mit max. 256 Zeichen")
 	private String cellphone;
+	@Size(max = 256, message = "Funk mit max. 256 Zeichen")
 	private String radiocomm;
+	@Size(max = 256, message = "E-Mail mit max. 256 Zeichen")
 	private String email;
+	@Size(max = 256, message = "Pager mit max. 256 Zeichen")
 	private String pager;
 
 	/**
@@ -46,8 +56,7 @@
 	}
 
 	/**
-	 * @param id
-	 *            the id to set
+	 * @param id the id to set
 	 */
 	public void setId(Long id) {
 		this.id = id;
@@ -61,8 +70,7 @@
 	}
 
 	/**
-	 * @param isPrivate
-	 *            the isPrivate to set
+	 * @param isPrivate the isPrivate to set
 	 */
 	public void setIsPrivate(Boolean isPrivate) {
 		this.isPrivate = isPrivate;
@@ -76,8 +84,7 @@
 	}
 
 	/**
-	 * @param phone
-	 *            the phone to set
+	 * @param phone the phone to set
 	 */
 	public void setPhone(String phone) {
 		this.phone = phone;
@@ -105,8 +112,7 @@
 	}
 
 	/**
-	 * @param radiocomm
-	 *            the radiocomm to set
+	 * @param radiocomm the radiocomm to set
 	 */
 	public void setRadiocomm(String radiocomm) {
 		this.radiocomm = radiocomm;
@@ -120,8 +126,7 @@
 	}
 
 	/**
-	 * @param email
-	 *            the email to set
+	 * @param email the email to set
 	 */
 	public void setEmail(String email) {
 		this.email = email;
@@ -135,8 +140,7 @@
 	}
 
 	/**
-	 * @param pager
-	 *            the pager to set
+	 * @param pager the pager to set
 	 */
 	public void setPager(String pager) {
 		this.pager = pager;
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/LocationDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/LocationDto.java
index 3bfa123..a92aa90 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/LocationDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/LocationDto.java
@@ -14,6 +14,7 @@
 
 import java.util.List;
 
+import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -32,46 +33,63 @@
 	 * default serial id.
 	 */
 	private static final long serialVersionUID = 1L;
+	@Size(max = 256, message = "Titel mit max. 256 Zeichen")
 	private String title;
+	@Size(max = 256, message = "Gemeinde mit max. 256 Zeichen")
 	private String district;
+	@Size(max = 8, message = "Kurztext mit max. 8 Zeichen")
 	private String shorttext;
+	@Size(max = 256, message = "Ort mit max. 256 Zeichen")
 	private String community;
 	private List<PostcodeDto> lsPostcode;
+	@Size(max = 32, message = "Zone mit max. 32 Zeichen")
 	private String wgs84zonedistrict;
+	@Size(max = 32, message = "Länge mit max. 32 Zeichen")
 	private String latitudedistrict;
+	@Size(max = 32, message = "Breite mit max. 32 Zeichen")
 	private String longitudedistrict;
+
 	private List<RegionSmallDto> lsRegions;
 	private List<LocationForBranchDto> lsLocationForBranches;
-	
+
 	private Long id;
-	
+
 	public Long getId() {
 		return id;
 	}
+
 	public void setId(Long id) {
 		this.id = id;
 	}
+
 	public String getTitle() {
 		return title;
 	}
+
 	public void setTitle(String title) {
 		this.title = title;
 	}
+
 	public String getDistrict() {
 		return district;
 	}
+
 	public void setDistrict(String district) {
 		this.district = district;
 	}
+
 	public String getShorttext() {
 		return shorttext;
 	}
+
 	public void setShorttext(String shorttext) {
 		this.shorttext = shorttext;
 	}
+
 	public String getCommunity() {
 		return community;
 	}
+
 	public void setCommunity(String community) {
 		this.community = community;
 	}
@@ -79,39 +97,50 @@
 	public String getWgs84zonedistrict() {
 		return wgs84zonedistrict;
 	}
+
 	public void setWgs84zonedistrict(String wgs84zonedistrict) {
 		this.wgs84zonedistrict = wgs84zonedistrict;
 	}
+
 	public String getLatitudedistrict() {
 		return latitudedistrict;
 	}
+
 	public void setLatitudedistrict(String latitudedistrict) {
 		this.latitudedistrict = latitudedistrict;
 	}
+
 	public String getLongitudedistrict() {
 		return longitudedistrict;
 	}
+
 	public void setLongitudedistrict(String longitudedistrict) {
 		this.longitudedistrict = longitudedistrict;
 	}
+
 	public List<RegionSmallDto> getLsRegions() {
 		return lsRegions;
 	}
+
 	public void setLsRegions(List<RegionSmallDto> lsRegions) {
 		this.lsRegions = lsRegions;
 	}
+
 	public List<PostcodeDto> getLsPostcode() {
 		return lsPostcode;
 	}
+
 	public void setLsPostcode(List<PostcodeDto> lsPostcode) {
 		this.lsPostcode = lsPostcode;
 	}
+
 	/**
 	 * @return the lsLocationForBranches
 	 */
 	public List<LocationForBranchDto> getLsLocationForBranches() {
 		return lsLocationForBranches;
 	}
+
 	/**
 	 * @param lsLocationForBranches the lsLocationForBranches to set
 	 */
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/LocationForBranchDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/LocationForBranchDto.java
index 713b2ac..79d9c0e 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/LocationForBranchDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/LocationForBranchDto.java
@@ -14,6 +14,7 @@
 
 import java.util.Date;
 
+import javax.validation.constraints.NotNull;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -33,10 +34,14 @@
 	 */
 	private static final long serialVersionUID = 1L;
 	private Long id;
+	@NotNull(message = "Sparte ist nicht gesetzt")
 	private Long branchId;
 	private String title;
+	@NotNull(message = "Lokation ist nicht gesetzt")
 	private Long locationId;
+
 	private Date validFrom;
+
 	private Date validTo;
 
 	/**
@@ -47,15 +52,12 @@
 	}
 
 	/**
-	 * @param id
-	 *            the id to set
+	 * @param id the id to set
 	 */
 	public void setId(Long id) {
 		this.id = id;
 	}
 
-	
-
 	/**
 	 * @return the branchId
 	 */
@@ -92,8 +94,7 @@
 	}
 
 	/**
-	 * @param title
-	 *            the title to set
+	 * @param title the title to set
 	 */
 	public void setTitle(String title) {
 		this.title = title;
@@ -107,8 +108,7 @@
 	}
 
 	/**
-	 * @param validFrom
-	 *            the validFrom to set
+	 * @param validFrom the validFrom to set
 	 */
 	public void setValidFrom(Date validFrom) {
 		this.validFrom = validFrom;
@@ -122,8 +122,7 @@
 	}
 
 	/**
-	 * @param validTo
-	 *            the validTo to set
+	 * @param validTo the validTo to set
 	 */
 	public void setValidTo(Date validTo) {
 		this.validTo = validTo;
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/LocationSelectionDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/LocationSelectionDto.java
index 1c96777..14c6d5f 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/LocationSelectionDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/LocationSelectionDto.java
@@ -12,6 +12,7 @@
  ********************************************************************************/
 package org.eclipse.openk.sp.dto;
 
+import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -30,9 +31,13 @@
 	 * default serial id.
 	 */
 	private static final long serialVersionUID = 1L;
+	@Size(max = 256, message = "Titel mit max. 256 Zeichen")
 	private String title;
+	@Size(max = 256, message = "Gemeinde mit max. 256 Zeichen")
 	private String district;
+	@Size(max = 8, message = "Kurztext mit max. 8 Zeichen")
 	private String shorttext;
+	@Size(max = 256, message = "Ort mit max. 256 Zeichen")
 	private String community;
 
 	private Long id;
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/OrganisationDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/OrganisationDto.java
index 84c2ccc..311a100 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/OrganisationDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/OrganisationDto.java
@@ -12,11 +12,15 @@
  ********************************************************************************/
 package org.eclipse.openk.sp.dto;
 
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.eclipse.openk.sp.abstracts.AbstractDto;
+
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import org.eclipse.openk.sp.abstracts.AbstractDto;
 
 /**
  * The "Organisation" Data Transfer Object (DTO)
@@ -30,7 +34,10 @@
 	 */
 	private static final long serialVersionUID = 1L;
 	private Long id;
+	@NotNull(message = "Name ist nicht gesetzt")
+	@Size(max = 256, message = "Name mit max. 256 Zeichen")
 	private String orgaName;
+	@Valid
 	private AddressDto address;
 
 	/**
@@ -41,8 +48,7 @@
 	}
 
 	/**
-	 * @param id
-	 *            the id to set
+	 * @param id the id to set
 	 */
 	public void setId(Long id) {
 		this.id = id;
@@ -56,8 +62,7 @@
 	}
 
 	/**
-	 * @param orgaName
-	 *            the orgaName to set
+	 * @param orgaName the orgaName to set
 	 */
 	public void setOrgaName(String orgaName) {
 		this.orgaName = orgaName;
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/PostcodeDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/PostcodeDto.java
index a2605bf..51d21f5 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/PostcodeDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/PostcodeDto.java
@@ -12,6 +12,8 @@
  ********************************************************************************/
 package org.eclipse.openk.sp.dto;
 
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -32,6 +34,8 @@
 	private static final long serialVersionUID = 1L;
 
 	private Long id;
+	@NotNull(message = "PLZ ist nicht gesetzt")
+	@Size(max = 256, message = "PLZ mit max. 256 Zeichen")
 	private String pcode;
 
 	public PostcodeDto() {
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/RegionSelectionDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/RegionSelectionDto.java
index 921a821..490c644 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/RegionSelectionDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/RegionSelectionDto.java
@@ -12,6 +12,8 @@
  ********************************************************************************/
 package org.eclipse.openk.sp.dto;
 
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -33,9 +35,10 @@
 	 */
 	private static final long serialVersionUID = 1L;
 	private Long id;
+	@NotNull(message = "Name ist nicht gesetzt")
+	@Size(max = 256, message = "Name mit max. 256 Zeichen")
 	private String regionName;
 
-
 	/**
 	 * @return the id
 	 */
@@ -44,8 +47,7 @@
 	}
 
 	/**
-	 * @param id
-	 *            the id to set
+	 * @param id the id to set
 	 */
 	public void setId(Long id) {
 		this.id = id;
@@ -59,5 +61,4 @@
 		this.regionName = regionName;
 	}
 
-	
 }
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/RegionSmallDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/RegionSmallDto.java
index 54fc84f..9d2f96f 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/RegionSmallDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/RegionSmallDto.java
@@ -12,6 +12,8 @@
  ********************************************************************************/
 package org.eclipse.openk.sp.dto;
 
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -31,6 +33,8 @@
 	 */
 	private static final long serialVersionUID = 1L;
 	private Long id;
+	@NotNull(message = "Name ist nicht gesetzt")
+	@Size(max = 256, message = "Name mit max. 256 Zeichen")
 	private String regionName;
 
 	/**
@@ -41,8 +45,7 @@
 	}
 
 	/**
-	 * @param id
-	 *            the id to set
+	 * @param id the id to set
 	 */
 	public void setId(Long id) {
 		this.id = id;
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyDurationDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyDurationDto.java
index 44061c4..2d7c11b 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyDurationDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyDurationDto.java
@@ -14,6 +14,7 @@
 
 import java.util.Date;
 
+import javax.validation.constraints.NotNull;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -33,14 +34,21 @@
 	 */
 	private static final long serialVersionUID = 1L;
 
+	@NotNull(message = "ID ist nicht gesetzt")
 	private Long standbyDurationId;
+	@NotNull(message = "Zeit ist nicht gesetzt")
 	private TimeDto validFrom;
+	@NotNull(message = "Zeit ist nicht gesetzt")
 	private Integer validDayFrom;
+	@NotNull(message = "Tag ist nicht gesetzt")
 	private TimeDto validTo;
+	@NotNull(message = "Tag ist nicht gesetzt")
 	private Integer validDayTo;
 	private Date modificationDate;
+	@NotNull(message = "Gruppe ist nicht gesetzt")
 	private Long standbyGroupId;
-	private Boolean nextUserInNextDuration; 
+	@NotNull(message = "Vorschub ist nicht gesetzt")
+	private Boolean nextUserInNextDuration;
 
 	public StandbyDurationDto() {
 		/** default constructor. */
@@ -54,8 +62,7 @@
 	}
 
 	/**
-	 * @param standbyDurationId
-	 *            the standbyDurationId to set
+	 * @param standbyDurationId the standbyDurationId to set
 	 */
 	public void setStandbyDurationId(Long standbyDurationId) {
 		this.standbyDurationId = standbyDurationId;
@@ -69,8 +76,7 @@
 	}
 
 	/**
-	 * @param validDayFrom
-	 *            the validDayFrom to set
+	 * @param validDayFrom the validDayFrom to set
 	 */
 	public void setValidDayFrom(Integer validDayFrom) {
 		this.validDayFrom = validDayFrom;
@@ -84,8 +90,7 @@
 	}
 
 	/**
-	 * @param validDayTo
-	 *            the validDayTo to set
+	 * @param validDayTo the validDayTo to set
 	 */
 	public void setValidDayTo(Integer validDayTo) {
 		this.validDayTo = validDayTo;
@@ -99,8 +104,7 @@
 	}
 
 	/**
-	 * @param modificationDate
-	 *            the modificationDate to set
+	 * @param modificationDate the modificationDate to set
 	 */
 	public void setModificationDate(Date modificationDate) {
 		this.modificationDate = modificationDate;
@@ -114,8 +118,7 @@
 	}
 
 	/**
-	 * @param standbyGroupId
-	 *            the standbyGroupId to set
+	 * @param standbyGroupId the standbyGroupId to set
 	 */
 	public void setStandbyGroupId(Long standbyGroupId) {
 		this.standbyGroupId = standbyGroupId;
@@ -129,8 +132,7 @@
 	}
 
 	/**
-	 * @param validFrom
-	 *            the validFrom to set
+	 * @param validFrom the validFrom to set
 	 */
 	public void setValidFrom(TimeDto validFrom) {
 		this.validFrom = validFrom;
@@ -144,8 +146,7 @@
 	}
 
 	/**
-	 * @param validTo
-	 *            the validTo to set
+	 * @param validTo the validTo to set
 	 */
 	public void setValidTo(TimeDto validTo) {
 		this.validTo = validTo;
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyGroupDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyGroupDto.java
index 67a053a..ed4ef36 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyGroupDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyGroupDto.java
@@ -16,6 +16,8 @@
 import java.util.Date;
 import java.util.List;
 
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -41,17 +43,22 @@
 	 */
 
 	private Long id;
+	@NotNull(message = "Titel ist nicht gesetzt")
+	@Size(max = 256, message = "Titel mit max. 256 Zeichen")
 	private String title;
+	@Size(max = 2048, message = "Kommentar mit max. 2048 Zeichen")
 	private String note;
 	private Date modificationDate;
+	@NotNull(message = "Zykluns ist nicht gesetzt")
 	private Boolean nextUserInNextCycle;
+	@NotNull(message = "Verlängerung ist nicht gesetzt")
 	private Boolean extendStandbyTime;
 	private List<UserInStandbyGroupDto> lsUserInStandbyGroups;
 	private List<StandbyDurationDto> lsStandbyDurations;
 	private List<BranchDto> lsBranches;
 	private List<UserFunctionDto> lsUserFunction = new ArrayList<>();
 	private List<RegionSelectionDto> lsRegions;
-	private List<CalendarDayDto> lsIgnoredCalendarDays; 
+	private List<CalendarDayDto> lsIgnoredCalendarDays;
 
 	/**
 	 * @return the id
@@ -61,8 +68,7 @@
 	}
 
 	/**
-	 * @param id
-	 *            the id to set
+	 * @param id the id to set
 	 */
 	public void setId(Long id) {
 		this.id = id;
@@ -76,8 +82,7 @@
 	}
 
 	/**
-	 * @param title
-	 *            the title to set
+	 * @param title the title to set
 	 */
 	public void setTitle(String title) {
 		this.title = title;
@@ -91,8 +96,7 @@
 	}
 
 	/**
-	 * @param modificationDate
-	 *            the modificationDate to set
+	 * @param modificationDate the modificationDate to set
 	 */
 	public void setModificationDate(Date modificationDate) {
 		this.modificationDate = modificationDate;
@@ -106,8 +110,7 @@
 	}
 
 	/**
-	 * @param lsUserInStandbyGroups
-	 *            the lsUserInStandbyGroups to set
+	 * @param lsUserInStandbyGroups the lsUserInStandbyGroups to set
 	 */
 	public void setLsUserInStandbyGroups(List<UserInStandbyGroupDto> lsUserInStandbyGroups) {
 		this.lsUserInStandbyGroups = lsUserInStandbyGroups;
@@ -121,8 +124,7 @@
 	}
 
 	/**
-	 * @param lsStandbyDurations
-	 *            the lsStandbyDurations to set
+	 * @param lsStandbyDurations the lsStandbyDurations to set
 	 */
 	public void setLsStandbyDurations(List<StandbyDurationDto> lsStandbyDurations) {
 		this.lsStandbyDurations = lsStandbyDurations;
@@ -136,8 +138,7 @@
 	}
 
 	/**
-	 * @param note
-	 *            the note to set
+	 * @param note the note to set
 	 */
 	public void setNote(String note) {
 		this.note = note;
@@ -151,8 +152,7 @@
 	}
 
 	/**
-	 * @param lsBranches
-	 *            the lsBranches to set
+	 * @param lsBranches the lsBranches to set
 	 */
 	public void setLsBranches(List<BranchDto> lsBranches) {
 		this.lsBranches = lsBranches;
@@ -166,13 +166,12 @@
 	}
 
 	/**
-	 * @param nextUserInNextCycle
-	 *            the nextUserInNextCycle to set
+	 * @param nextUserInNextCycle the nextUserInNextCycle to set
 	 */
 	public void setNextUserInNextCycle(Boolean nextUserInNextCycle) {
 		this.nextUserInNextCycle = nextUserInNextCycle;
 	}
-	
+
 	/**
 	 * @return the extendDuty
 	 */
@@ -195,8 +194,7 @@
 	}
 
 	/**
-	 * @param lsUserFunction
-	 *            the lsUserFunction to set
+	 * @param lsUserFunction the lsUserFunction to set
 	 */
 	public void setLsUserFunction(List<UserFunctionDto> lsUserFunction) {
 		this.lsUserFunction = lsUserFunction;
@@ -210,8 +208,7 @@
 	}
 
 	/**
-	 * @param lsRegions
-	 *            the lsRegions to set
+	 * @param lsRegions the lsRegions to set
 	 */
 	public void setLsRegions(List<RegionSelectionDto> lsRegions) {
 		this.lsRegions = lsRegions;
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyListDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyListDto.java
index 6d7fdf9..f546de4 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyListDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyListDto.java
@@ -16,6 +16,8 @@
 import java.util.Date;
 import java.util.List;
 
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -38,6 +40,8 @@
 	private static final long serialVersionUID = 1L;
 
 	private Long id;
+	@NotNull(message = "Name fehlt")
+	@Size(max = 256, message = "Name mit max. 256 Zeichen\")")
 	private String title;
 	private Date modificationDate;
 	private List<StandbyListHasStandbyGroupDto> lsStandbyListHasStandbyGroup = new ArrayList<>();
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyListHasStandbyGroupDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyListHasStandbyGroupDto.java
index cb01797..ff4dc1d 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyListHasStandbyGroupDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/StandbyListHasStandbyGroupDto.java
@@ -12,6 +12,7 @@
  ********************************************************************************/
 package org.eclipse.openk.sp.dto;
 
+import javax.validation.constraints.NotNull;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -34,8 +35,10 @@
 	private static final long serialVersionUID = 1L;
 
 	private Long id;
+	@NotNull(message = "Gruppe muss gesetzt sein")
 	private Long standbyGroupId;
 	private String standbyGroupName;
+	@NotNull(message = "Liste muss gesetzt sein")
 	private Long standbyListId;
 	private Integer position;
 
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserDto.java
index 63450d4..5fbb065 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserDto.java
@@ -16,6 +16,9 @@
 import java.util.Date;
 import java.util.List;
 
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -36,19 +39,32 @@
 	private static final long serialVersionUID = 1L;
 
 	private Long id;
+	@Size(max = 256, message = "Vorname mit max. 256 Zeichen")
 	private String firstname;
+	@Size(max = 256, message = "Nachname mit max. 256 Zeichen")
 	private String lastname;
+	@Size(max = 256, message = "HR-Nummer mit max. 256 Zeichen")
 	private String hrNumber;
+	@Size(max = 256, message = "Pers-Nr. mit max. 256 Zeichen")
 	private String userKey;
+	@NotNull(message = "Privat oder Firma kennzeichnen")
 	private Boolean isCompany;
+	@Size(max = 2048, message = "Vorname mit max. 2048 Zeichen")
 	private String notes;
+
 	private Date validFrom;
+
 	private Date validTo;
 	private Date modificationDate;
+	@Valid
 	private OrganisationDto organisation;
+	@Valid
 	private AddressDto privateAddress;
+	@Valid
 	private ContactDataDto businessContactData;
+	@Valid
 	private ContactDataDto privateContactData;
+
 	private List<UserInRegionDto> lsUserInRegions = new ArrayList<>();
 	private List<UserHasUserFunctionDto> lsUserFunctions = new ArrayList<>();
 
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserFunctionDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserFunctionDto.java
index b482087..4f1834d 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserFunctionDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserFunctionDto.java
@@ -12,6 +12,8 @@
  ********************************************************************************/
 package org.eclipse.openk.sp.dto;
 
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -32,9 +34,10 @@
 	private static final long serialVersionUID = 1L;
 	private Long id;
 	private Long functionId;
+	@NotNull(message = "Funktionsname fehlt")
+	@Size(max = 256, message = "Name mit max. 256 Zeichen")
 	private String functionName;
 
-
 	/**
 	 * @return the id
 	 */
@@ -43,8 +46,7 @@
 	}
 
 	/**
-	 * @param id
-	 *            the id to set
+	 * @param id the id to set
 	 */
 	public void setId(Long id) {
 		this.id = id;
@@ -66,7 +68,4 @@
 		this.functionId = functionId;
 	}
 
-
-
-
 }
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserFunctionSelectionDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserFunctionSelectionDto.java
index a0f38d3..d262b4e 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserFunctionSelectionDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserFunctionSelectionDto.java
@@ -12,6 +12,7 @@
  ********************************************************************************/
 package org.eclipse.openk.sp.dto;
 
+import javax.validation.constraints.NotNull;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -31,7 +32,9 @@
 	 */
 	private static final long serialVersionUID = 1L;
 	private Long id;
+	@NotNull(message = "Id ist nicht gesetzt")
 	private Long functionId;
+	@NotNull(message = "Name ist nicht gesetzt")
 	private String functionName;
 
 	/**
@@ -42,8 +45,7 @@
 	}
 
 	/**
-	 * @param id
-	 *            the id to set
+	 * @param id the id to set
 	 */
 	public void setId(Long id) {
 		this.id = id;
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserInStandbyGroupDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserInStandbyGroupDto.java
index 9f7c441..f2b0ca1 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserInStandbyGroupDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/UserInStandbyGroupDto.java
@@ -14,6 +14,7 @@
 
 import java.util.Date;
 
+import javax.validation.constraints.NotNull;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.eclipse.openk.sp.abstracts.AbstractDto;
@@ -37,12 +38,16 @@
 
 	private Long id;
 
+	@NotNull(message = "Gruppe ist nicht gesetzt")
 	private Long standbyGroupId;
+	@NotNull(message = "Mitarbeiter ist nicht gesetzt")
 	private Long userId;
 	private String firstname;
 	private String lastname;
 
+	@NotNull(message = "Gültig von ist nicht gesetzt")
 	private Date validFrom;
+	@NotNull(message = "Gültig bis ist nicht gesetzt")
 	private Date validTo;
 
 	private String userRegionStr;
@@ -62,8 +67,7 @@
 	}
 
 	/**
-	 * @param id
-	 *            the id to set
+	 * @param id the id to set
 	 */
 	public void setId(Long id) {
 		this.id = id;
@@ -77,8 +81,7 @@
 	}
 
 	/**
-	 * @param validFrom
-	 *            the validFrom to set
+	 * @param validFrom the validFrom to set
 	 */
 	public void setValidFrom(Date validFrom) {
 		this.validFrom = validFrom;
@@ -92,8 +95,7 @@
 	}
 
 	/**
-	 * @param validTo
-	 *            the validTo to set
+	 * @param validTo the validTo to set
 	 */
 	public void setValidTo(Date validTo) {
 		this.validTo = validTo;
@@ -107,8 +109,7 @@
 	}
 
 	/**
-	 * @param standbyGroupId
-	 *            the standbyGroupId to set
+	 * @param standbyGroupId the standbyGroupId to set
 	 */
 	public void setStandbyGroupId(Long standbyGroupId) {
 		this.standbyGroupId = standbyGroupId;
@@ -122,8 +123,7 @@
 	}
 
 	/**
-	 * @param userId
-	 *            the userId to set
+	 * @param userId the userId to set
 	 */
 	public void setUserId(Long userId) {
 		this.userId = userId;
@@ -137,8 +137,7 @@
 	}
 
 	/**
-	 * @param firstname
-	 *            the firstname to set
+	 * @param firstname the firstname to set
 	 */
 	public void setFirstname(String firstname) {
 		this.firstname = firstname;
@@ -152,8 +151,7 @@
 	}
 
 	/**
-	 * @param lastname
-	 *            the lastname to set
+	 * @param lastname the lastname to set
 	 */
 	public void setLastname(String lastname) {
 		this.lastname = lastname;
@@ -167,8 +165,7 @@
 	}
 
 	/**
-	 * @param userRegionStr
-	 *            the userRegionStr to set
+	 * @param userRegionStr the userRegionStr to set
 	 */
 	public void setUserRegionStr(String userRegionStr) {
 		this.userRegionStr = userRegionStr;
@@ -182,8 +179,7 @@
 	}
 
 	/**
-	 * @param userHasUserFunctionStr
-	 *            the userHasUserFunctionStr to set
+	 * @param userHasUserFunctionStr the userHasUserFunctionStr to set
 	 */
 	public void setUserHasUserFunctionStr(String userHasUserFunctionStr) {
 		this.userHasUserFunctionStr = userHasUserFunctionStr;
@@ -197,8 +193,7 @@
 	}
 
 	/**
-	 * @param organisationName
-	 *            the organisationName to set
+	 * @param organisationName the organisationName to set
 	 */
 	public void setOrganisationName(String organisationName) {
 		this.organisationName = organisationName;
@@ -212,8 +207,7 @@
 	}
 
 	/**
-	 * @param position
-	 *            the position to set
+	 * @param position the position to set
 	 */
 	public void setPosition(Integer pos) {
 		this.position = pos;
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/CalendarRestService.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/CalendarRestService.java
index aace616..755882d 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/CalendarRestService.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/CalendarRestService.java
@@ -14,6 +14,7 @@
 
 import java.util.List;
 
+import javax.validation.Valid;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
 import javax.ws.rs.HeaderParam;
@@ -84,7 +85,7 @@
 	@Path("/save")
 	public Response saveCalendarDay(
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			CalendarDayDto calendarDayDto) {
+			@Valid CalendarDayDto calendarDayDto) {
 
 		ModifyingInvokable<CalendarDayDto> invokable = modusr -> calendarController.saveCalendarDay(calendarDayDto);
 
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/LocationRestService.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/LocationRestService.java
index 2c5989d..1eea19c 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/LocationRestService.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/LocationRestService.java
@@ -14,6 +14,7 @@
 
 import java.util.List;
 
+import javax.validation.Valid;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
 import javax.ws.rs.HeaderParam;
@@ -105,7 +106,7 @@
 	@Path("/{id}/branch/save/list")
 	public Response saveBranchesForLocation(@PathParam("id") Long id,
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			List<LocationForBranchDto> lsLocationForBranchDto) {
+			@Valid List<LocationForBranchDto> lsLocationForBranchDto) {
 
 		ModifyingInvokable<List<LocationForBranchDto>> invokable = modusr -> locationController
 				.saveBranchesForLocation(id, lsLocationForBranchDto);
@@ -135,7 +136,7 @@
 	@Path("/{id}/region/save/list")
 	public Response saveRegionsForLocation(@PathParam("id") Long id,
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			List<RegionSmallDto> lsRegionDto) {
+			@Valid List<RegionSmallDto> lsRegionDto) {
 
 		ModifyingInvokable<List<RegionSmallDto>> invokable = modusr -> locationController.saveRegionsForLocation(id,
 				lsRegionDto);
@@ -165,7 +166,7 @@
 	@Path("/{id}/postcode/save/list")
 	public Response savePostcodesForLocation(@PathParam("id") Long id,
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			List<PostcodeDto> lsPostcodeDto) {
+			@Valid List<PostcodeDto> lsPostcodeDto) {
 
 		ModifyingInvokable<List<PostcodeDto>> invokable = modusr -> locationController.savePostcodeForLocation(id,
 				lsPostcodeDto);
@@ -195,7 +196,7 @@
 	@Path("/save")
 	public Response saveLocation(
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			LocationDto locationDto) {
+			@Valid LocationDto locationDto) {
 
 		ModifyingInvokable<LocationDto> invokable = modusr -> locationController.saveLocation(locationDto);
 
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/OrganisationRestService.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/OrganisationRestService.java
index d89a5d5..20ba70a 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/OrganisationRestService.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/OrganisationRestService.java
@@ -14,6 +14,7 @@
 
 import java.util.List;
 
+import javax.validation.Valid;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
 import javax.ws.rs.HeaderParam;
@@ -90,7 +91,7 @@
 	@Path("/save")
 	public Response saveOrganisation(
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			OrganisationDto organisationDto) {
+			@Valid OrganisationDto organisationDto) {
 
 		ModifyingInvokable<OrganisationDto> invokable = modusr -> organisationController
 				.saveOrganisation(organisationDto);
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/PostcodeRestService.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/PostcodeRestService.java
index 581dd17..97ce99c 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/PostcodeRestService.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/PostcodeRestService.java
@@ -14,6 +14,7 @@
 
 import java.util.List;
 
+import javax.validation.Valid;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
 import javax.ws.rs.HeaderParam;
@@ -84,7 +85,7 @@
 	@Path("/save")
 	public Response savePostcode(
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			PostcodeDto postcodeDto) {
+			@Valid PostcodeDto postcodeDto) {
 
 		ModifyingInvokable<PostcodeDto> invokable = modusr -> postcodeController.savePostcode(postcodeDto);
 
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/RegionRestService.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/RegionRestService.java
index b6f5e5b..064951e 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/RegionRestService.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/RegionRestService.java
@@ -14,6 +14,7 @@
 
 import java.util.List;
 
+import javax.validation.Valid;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
 import javax.ws.rs.HeaderParam;
@@ -90,7 +91,7 @@
 	@Path("/{id}/location/save/list")
 	public Response saveLocationsForRegion(@PathParam("id") Long id,
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			List<LocationSelectionDto> lsLocationDto) {
+			@Valid List<LocationSelectionDto> lsLocationDto) {
 
 		ModifyingInvokable<List<LocationSelectionDto>> invokable = modusr -> regionController.saveLocationsForRegion(id,
 				lsLocationDto);
@@ -120,7 +121,7 @@
 	@Path("/save")
 	public Response saveRegionDto(
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			RegionSelectionDto regionSelectionDto) {
+			@Valid RegionSelectionDto regionSelectionDto) {
 
 		RegionDto regionDto = new RegionDto(regionSelectionDto);
 
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/StandbyGroupRestService.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/StandbyGroupRestService.java
index 3fdd5b7..7f95813 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/StandbyGroupRestService.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/StandbyGroupRestService.java
@@ -14,6 +14,7 @@
 
 import java.util.List;
 
+import javax.validation.Valid;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
 import javax.ws.rs.HeaderParam;
@@ -99,7 +100,7 @@
 	@Path("/{id}/branch/save/list")
 	public Response saveBranchesForStandbyGroup(@PathParam("id") Long id,
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			List<BranchDto> listBranchDto) {
+			@Valid List<BranchDto> listBranchDto) {
 
 		ModifyingInvokable<List<BranchDto>> invokable = modusr -> standbyGroupController.saveBranchesForStandbyGroup(id,
 				listBranchDto);
@@ -129,7 +130,7 @@
 	@Path("/save")
 	public Response saveStandbyGroup(
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			StandbyGroupDto standbyGroupDto) {
+			@Valid StandbyGroupDto standbyGroupDto) {
 
 		ModifyingInvokable<AbstractDto> invokable = modusr -> standbyGroupController.saveStandbyGroup(standbyGroupDto);
 
@@ -143,7 +144,7 @@
 	@Path("/{id}/region/save/list")
 	public Response saveRegionForGroup(@PathParam("id") Long id,
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			List<RegionSelectionDto> lsRegionSelectionDtos) {
+			@Valid List<RegionSelectionDto> lsRegionSelectionDtos) {
 		ModifyingInvokable<List<RegionSelectionDto>> invokable = modusr -> standbyGroupController
 				.saveRegionsForStandbyGroup(id, lsRegionSelectionDtos);
 
@@ -171,7 +172,7 @@
 	@Path("/{id}/user/save/list")
 	public Response saveStandbyGroupUserList(@PathParam("id") Long id,
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			List<UserInStandbyGroupDto> listStandbyGroupUserDto) {
+			@Valid List<UserInStandbyGroupDto> listStandbyGroupUserDto) {
 
 		ModifyingInvokable<UserInStandbyGroupResponseDto> invokable = modusr -> standbyGroupController.saveUserList(id,
 				listStandbyGroupUserDto);
@@ -237,7 +238,7 @@
 	@Path("/{id}/duration/save/list")
 	public Response saveStandbyGroupDurationList(@PathParam("id") Long id,
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			List<StandbyDurationDto> listStandbyDurationDto) {
+			@Valid List<StandbyDurationDto> listStandbyDurationDto) {
 
 		ModifyingInvokable<StandbyDurationResponseDto> invokable = modusr -> standbyGroupController.saveDurationList(id,
 				listStandbyDurationDto);
@@ -271,7 +272,7 @@
 	@Path("/{id}/userfunction/save/list")
 	public Response saveFunctionsForGroup(@PathParam("id") Long id,
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			List<UserFunctionSelectionDto> lsUserFunctionSelectionDtos) {
+			@Valid List<UserFunctionSelectionDto> lsUserFunctionSelectionDtos) {
 
 		ModifyingInvokable<List<UserFunctionSelectionDto>> invokable = modusr -> standbyGroupController
 				.saveUserFunctionList(id, lsUserFunctionSelectionDtos);
@@ -301,7 +302,7 @@
 	@Path("/{id}/calendar/ignore/save/list")
 	public Response saveIgnoreCalendarDayList(@PathParam("id") Long id,
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			List<CalendarDayDto> listCalendarDaysDto) {
+			@Valid List<CalendarDayDto> listCalendarDaysDto) {
 
 		ModifyingInvokable<List<CalendarDayDto>> invokable = modusr -> standbyGroupController
 				.saveIgnoredCalendarDayList(id, listCalendarDaysDto);
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/StandbyListRestService.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/StandbyListRestService.java
index 297fa56..7eb3d6d 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/StandbyListRestService.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/StandbyListRestService.java
@@ -14,6 +14,7 @@
 
 import java.util.List;
 
+import javax.validation.Valid;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
 import javax.ws.rs.HeaderParam;
@@ -105,7 +106,7 @@
 	@Path("/save")
 	public Response saveStandbyList(
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			StandbyListDto standbyListDto) {
+			@Valid StandbyListDto standbyListDto) {
 
 		ModifyingInvokable<AbstractDto> invokable = modusr -> standbyListController.saveStandbyList(standbyListDto);
 
@@ -119,7 +120,7 @@
 	@Path("/{id}/standbygroup/save/list")
 	public Response addStandbyGroup(@PathParam("id") Long id,
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			List<StandbyListHasStandbyGroupDto> lsStandbyListHasStandbyGroupDto) {
+			@Valid List<StandbyListHasStandbyGroupDto> lsStandbyListHasStandbyGroupDto) {
 
 		ModifyingInvokable<List<StandbyListHasStandbyGroupDto>> invokable = modusr -> standbyListController
 				.saveStandbyGroupsForStandbyList(id, lsStandbyListHasStandbyGroupDto);
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/UserFunctionRestService.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/UserFunctionRestService.java
index 14d8a32..a80c6fe 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/UserFunctionRestService.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/UserFunctionRestService.java
@@ -14,6 +14,7 @@
 
 import java.util.List;
 
+import javax.validation.Valid;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
 import javax.ws.rs.HeaderParam;
@@ -90,7 +91,7 @@
 	@Path("/save")
 	public Response saveUserFunction(
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			UserFunctionDto userFunctionDto) {
+			@Valid UserFunctionDto userFunctionDto) {
 
 		ModifyingInvokable<UserFunctionDto> invokable = modusr -> userFunctionController
 				.saveUserFunction(userFunctionDto);
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/UserRestService.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/UserRestService.java
index 302b6d7..5a5ffbc 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/UserRestService.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/UserRestService.java
@@ -14,6 +14,7 @@
 
 import java.util.List;
 
+import javax.validation.Valid;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
 import javax.ws.rs.HeaderParam;
@@ -119,7 +120,7 @@
 	@Path("/{id}/region/save/list")
 	public Response saveRegionsForUser(@PathParam("id") Long id,
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			List<UserInRegionDto> lsUserInRegionsDto) {
+			@Valid List<UserInRegionDto> lsUserInRegionsDto) {
 
 		ModifyingInvokable<List<UserInRegionDto>> invokable = modusr -> userController.saveRegionsForUser(id,
 				lsUserInRegionsDto);
@@ -149,7 +150,7 @@
 	@Path("/{id}/userfunction/save/list")
 	public Response saveFunctionsForUser(@PathParam("id") Long id,
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			List<UserHasUserFunctionDto> lsFunctionDto) {
+			@Valid List<UserHasUserFunctionDto> lsFunctionDto) {
 
 		ModifyingInvokable<List<UserHasUserFunctionDto>> invokable = modusr -> userController.saveFunctionsForUser(id,
 				lsFunctionDto);
@@ -179,7 +180,7 @@
 	@Path("/save")
 	public Response saveUser(
 			@ApiParam(name = "Authorization", value = "JWT Token", required = true) @HeaderParam(value = Globals.KEYCLOAK_AUTH_TAG) String jwt,
-			UserDto userDto) {
+			@Valid UserDto userDto) {
 
 		ModifyingInvokable<UserDto> invokable = modusr -> userController.saveUser(userDto);
 
diff --git a/oKBereitschaftsplanungBackend/src/main/resources/documents/oK_Bereitschaftsplanung.pdf b/oKBereitschaftsplanungBackend/src/main/resources/documents/oK_Bereitschaftsplanung.pdf
index 17acfa7..c7ed5a0 100644
--- a/oKBereitschaftsplanungBackend/src/main/resources/documents/oK_Bereitschaftsplanung.pdf
+++ b/oKBereitschaftsplanungBackend/src/main/resources/documents/oK_Bereitschaftsplanung.pdf
Binary files differ