Project

General

Profile

1
package eu.dnetlib.goldoa.domain;
2

    
3
import java.io.Serializable;
4
import javax.persistence.*;
5
import java.sql.Timestamp;
6
import java.util.ArrayList;
7
import java.util.List;
8

    
9

    
10
@Entity
11
@Table(name="Affiliation")
12
@AssociationOverrides({
13
		@AssociationOverride(name = "pk.user",
14
				joinColumns = @JoinColumn(name = "user")),
15
		@AssociationOverride(name = "pk.organization",
16
				joinColumns = @JoinColumn(name = "organization")) })
17
public class Affiliation implements Serializable {
18
	private static final long serialVersionUID = 1L;
19

    
20
	@EmbeddedId
21
	private AffiliationPK pk = new AffiliationPK();
22

    
23
	//@Column(columnDefinition = "text")
24
	private String department;
25
	private Timestamp enddate;
26
	private Timestamp startdate;
27

    
28
	public String getDepartment() {
29
		return department;
30
	}
31

    
32
	public void setDepartment(String department) {
33
		this.department = department;
34
	}
35

    
36
	public Timestamp getEnddate() {
37
		return enddate;
38
	}
39

    
40
	public void setEnddate(Timestamp enddate) {
41
		this.enddate = enddate;
42
	}
43

    
44
	public Timestamp getStartdate() {
45
		return startdate;
46
	}
47

    
48
	public void setStartdate(Timestamp startdate) {
49
		this.startdate = startdate;
50
	}
51

    
52
	public AffiliationPK getPk() {
53
		return pk;
54
	}
55

    
56
	public void setPk(AffiliationPK pk) {
57
		this.pk = pk;
58
	}
59

    
60
	@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
61
	@JoinTable(name = "publication_affiliation",  joinColumns = {
62
			@JoinColumn(name = "user", nullable = false, updatable = false),
63
			@JoinColumn(name = "organization", nullable = false, updatable = false)},
64
			inverseJoinColumns = { @JoinColumn(name = "publication",
65
					nullable = false, updatable = false) })
66
	private List<Publication> publications = new ArrayList<>();
67

    
68
	public List<Publication> getPublications() {
69
		return publications;
70
	}
71

    
72
	public void setPublications(List<Publication> publications) {
73
		this.publications = publications;
74
	}
75

    
76
	public void addPublication(Publication p){
77
		this.publications.add(p);
78
	}
79

    
80
	public void removePublication(Publication p){
81
		this.publications.remove(p);
82
	}
83
}
(2-2/52)