1
2
3
4 package de.tivsource.page.entity.application;
5
6 import java.util.Date;
7 import java.util.List;
8
9 import javax.persistence.Basic;
10 import javax.persistence.CascadeType;
11 import javax.persistence.Column;
12 import javax.persistence.Embedded;
13 import javax.persistence.Entity;
14 import javax.persistence.FetchType;
15 import javax.persistence.Id;
16 import javax.persistence.JoinColumn;
17 import javax.persistence.ManyToOne;
18 import javax.persistence.OneToMany;
19 import javax.persistence.Temporal;
20
21 import org.hibernate.envers.Audited;
22 import org.hibernate.search.annotations.DocumentId;
23
24 import de.tivsource.page.entity.embeddable.Address;
25 import de.tivsource.page.entity.embeddable.ContactDetails;
26 import de.tivsource.page.entity.vacancy.Vacancy;
27
28
29
30
31
32 @Audited
33 @Entity
34 public class Application {
35
36
37
38
39
40
41 @Id
42 @DocumentId
43 @Column(name="uuid", unique=true, length=42)
44 private String uuid;
45
46
47
48
49 @Basic
50 @org.hibernate.annotations.Type(type = "yes_no")
51 private Boolean gender;
52
53
54
55
56 private String firstname;
57
58
59
60
61 private String lastname;
62
63 @Embedded
64 private Address address;
65
66 @Embedded
67 private ContactDetails contactDetails;
68
69 @Temporal(javax.persistence.TemporalType.TIMESTAMP)
70 private Date birthday;
71
72 @OneToMany(mappedBy = "application", cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, orphanRemoval=true)
73 private List<Education> educations;
74
75 @ManyToOne(fetch = FetchType.EAGER)
76 @JoinColumn(name = "vacancy_uuid")
77 private Vacancy vacancy;
78
79 @Temporal(javax.persistence.TemporalType.TIMESTAMP)
80 private Date created;
81
82 private String createdAddress;
83
84 }