package edu.sjtu.infosec.ismp.manager.OSS.pm.model; import java.io.Serializable; import java.sql.Timestamp; import java.util.HashSet; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.Table; import org.hibernate.annotations.Fetch; import org.hibernate.annotations.FetchMode; import org.hibernate.annotations.LazyCollection; import org.hibernate.annotations.LazyCollectionOption; import org.hibernate.annotations.OrderBy; import edu.sjtu.infosec.ismp.security.Domain; /** * 排班记录 * @author Wu Guojie * @date 2010-08-06 * @version 1.0 */ @Entity @Table(name = "oss_pm_duty_schedule") @org.hibernate.annotations.Entity(dynamicInsert = true, dynamicUpdate = true) public class DutySchedule implements Serializable { /** * */ private static final long serialVersionUID = -6039273200559338446L; /** * ID */ @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; /** * 所属域 */ @ManyToOne @JoinColumn(name="domain_id") private Domain domain; /** * 值班人员 */ // @ManyToOne // @JoinColumn(name="roster_id") // 多对多 @ManyToMany // 中间表定义,表名采用默认命名规则 @JoinTable(name = "oss_pm_duty_schedule_roster", joinColumns = { @JoinColumn(name = "duty_schedule_id") }, inverseJoinColumns = { @JoinColumn(name = "roster_id") }) @OrderBy(clause = "roster_id") //非延迟加载 @LazyCollection(LazyCollectionOption.FALSE) @Fetch(FetchMode.SUBSELECT) private Set<Roster> roster = new HashSet<Roster>(); /** * 主要负责人(备用字段) */ @Column(name="is_leader") private int isLeader; /** * 是否发布 * 0:否 * 1:是 */ @Column(name="is_published") private int isPublished; /** * 值班任务 */ @Column(name="task") private String task; /** * 值班开始时间 */ @Column(name="start_time") private Timestamp startTime; /** * 值班结束时间 */ @Column(name="end_time") private Timestamp endTime; /** * 创建时间 */ @Column(name="create_time") private Timestamp createTime; /** * 最后修改时间 */ @Column(name="last_update_time") private Timestamp lastUpdateTime; /** * 备注 */ @Column(name="remark") private String remark; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Domain getDomain() { return domain; } public void setDomain(Domain domain) { this.domain = domain; } public Set<Roster> getRoster() { return roster; } public void setRoster(Set<Roster> roster) { this.roster = roster; } public int getIsLeader() { return isLeader; } public void setIsLeader(int isLeader) { this.isLeader = isLeader; } public String getTask() { return task; } public void setTask(String task) { this.task = task; } public Timestamp getStartTime() { return startTime; } public void setStartTime(Timestamp startTime) { this.startTime = startTime; } public Timestamp getEndTime() { return endTime; } public void setEndTime(Timestamp endTime) { this.endTime = endTime; } public Timestamp getCreateTime() { return createTime; } public void setCreateTime(Timestamp createTime) { this.createTime = createTime; } public Timestamp getLastUpdateTime() { return lastUpdateTime; } public void setLastUpdateTime(Timestamp lastUpdateTime) { this.lastUpdateTime = lastUpdateTime; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public int getIsPublished() { return isPublished; } public void setIsPublished(int isPublished) { this.isPublished = isPublished; } }