1 package com.germinus.merlin.model;
2
3
4
5 import java.util.HashSet;
6 import java.util.Set;
7
8 import javax.persistence.AttributeOverride;
9 import javax.persistence.AttributeOverrides;
10 import javax.persistence.CascadeType;
11 import javax.persistence.Column;
12 import javax.persistence.EmbeddedId;
13 import javax.persistence.Entity;
14 import javax.persistence.FetchType;
15 import javax.persistence.JoinColumn;
16 import javax.persistence.ManyToOne;
17 import javax.persistence.OneToMany;
18 import javax.persistence.Table;
19
20 import com.germinus.merlin.model.assignment.AssignmentResult;
21
22
23
24
25 @Entity
26 @Table(name = "Teachers" )
27 public class Teacher implements java.io.Serializable {
28
29
30
31
32
33 private static final long serialVersionUID = 2137058005983382623L;
34 private TeachersId id;
35 private Course course;
36 private Set<AssignmentResult> assignmentResultses = new HashSet<AssignmentResult>(0);
37
38 public Teacher() {
39 }
40
41 public Teacher(TeachersId id, Course course) {
42 this.id = id;
43 this.course = course;
44 }
45
46 @EmbeddedId
47 @AttributeOverrides( {
48 @AttributeOverride(name = "userid", column = @Column(name = "userid", nullable = false)),
49 @AttributeOverride(name = "courseid", column = @Column(name = "courseid", nullable = false)) })
50 public TeachersId getId() {
51 return this.id;
52 }
53
54 public void setId(TeachersId id) {
55 this.id = id;
56 }
57
58
59 @ManyToOne(fetch = FetchType.LAZY)
60 @JoinColumn(name = "courseid", nullable = false, insertable = false, updatable = false)
61 public Course getCourse() {
62 return this.course;
63 }
64
65 public void setCourse(Course course) {
66 this.course = course;
67 }
68
69 @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "teachers")
70 public Set<AssignmentResult> getAssignmentResultses() {
71 return this.assignmentResultses;
72 }
73
74 public void setAssignmentResultses(
75 Set<AssignmentResult> assignmentResultses) {
76 this.assignmentResultses = assignmentResultses;
77 }
78
79 }