package jef.orm.joindesc; import java.util.Date; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import jef.tools.DateUtils; @Entity() public class UserToLession extends jef.database.DataObject { /** * */ private static final long serialVersionUID = 2187565257971890565L; @Id private int userId; @Id private int lessionId; private Date testTime; private int score; @ManyToOne @JoinColumn(name = "userId", referencedColumnName = "id") private Student user; @ManyToOne(targetEntity=Lesson.class,fetch=FetchType.LAZY) @JoinColumn(name = "lessionId", referencedColumnName = "id") private Lesson lession; public enum Field implements jef.database.Field { userId, lessionId, testTime, score } public UserToLession() { } public UserToLession(int uid, int lid, int score) { this.userId=uid; this.lessionId=lid; this.score=score; this.testTime=new Date(); } public Student getUser() { return user; } public void setUser(Student user) { this.user = user; } public Lesson getLession() { return lession; } public void setLession(Lesson lession) { this.lession = lession; } public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } public int getLessionId() { return lessionId; } public void setLessionId(int lessionId) { this.lessionId = lessionId; } public Date getTestTime() { return testTime; } public void setTestTime(Date testTime) { this.testTime = testTime; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } @Override protected Object clone() throws CloneNotSupportedException { // TODO Auto-generated method stub return super.clone(); } @Override public String toString() { return (lession==null?null:lession.getName())+":"+score+" at "+DateUtils.formatDateTime(this.testTime); } }