1 package ch.dvbern.demo.entities;
3 import java.util.ArrayList;
5 import javax.annotation.Nonnull;
6 import javax.persistence.Column;
7 import javax.persistence.Entity;
8 import javax.persistence.ForeignKey;
9 import javax.persistence.Index;
10 import javax.persistence.JoinColumn;
11 import javax.persistence.JoinTable;
12 import javax.persistence.ManyToMany;
13 import javax.persistence.Table;
14 import javax.persistence.UniqueConstraint;
15 import javax.validation.constraints.NotNull;
16 import javax.validation.constraints.Size;
18 import static ch.dvbern.demo.util.Constants.DB_DEFAULT_MAX_LENGTH;
21 * Entity fuer personendaten
24 @Table(uniqueConstraints = {
25 @UniqueConstraint(name = "person_uc1", columnNames = "vorname"),
26 @UniqueConstraint(name = "person_uc2", columnNames = "userErstellt"),
27 @UniqueConstraint(name = "person_uc3", columnNames = { "userErstellt", "vorname" }) // FIXME funktioniert nicht
29 public class Person extends AbstractEntity {
31 private static final long serialVersionUID = -9032257320578372570L;
34 @Size(min = 1, max = DB_DEFAULT_MAX_LENGTH)
35 @Column(nullable = false)
37 private String vorname = "";
40 @Size(min = 1, max = DB_DEFAULT_MAX_LENGTH)
42 @Column(nullable = false)
43 private String nachname = "";
48 name = "personen_adressen",
49 joinColumns = @JoinColumn(name = "person_id", foreignKey = @ForeignKey(name = "person_fk1")),
50 inverseJoinColumns = @JoinColumn(name = "adresse_id", foreignKey = @ForeignKey(name = "adresse_fk1")),
52 @Index(name = "personen_adressen_ix1", columnList = "person_id"),
53 @Index(name = "personen_adressen_ix2", columnList = "adresse_id")
56 // @org.hibernate.annotations.ForeignKey(name = "person_fk1", inverseName = "adresse_fk1") // TODO ohne die Hibernate spez. Annotation funktioniert das Naming der Foreign Keys nicht
57 private List<Adresse> adressen = new ArrayList<>();
61 public String getVorname() {
65 public void setVorname(@Nonnull final String vorname) {
66 this.vorname = vorname;
70 public String getNachname() {
74 public void setNachname(@Nonnull final String nachname) {
75 this.nachname = nachname;
79 public List<Adresse> getAdressen() {
83 public void setAdressen(@Nonnull final List<Adresse> adressen) {
84 this.adressen = adressen;