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