/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.plugin.vote.model; import java.io.Serializable; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.OrderBy; import javax.persistence.SequenceGenerator; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; /** * 投票人员信息 * * <ul> * <li>id:编号</li> * <li>ip:IP</li> * <li>questionnaireId:问卷调查编号</li> * <li>records:用户填写问卷调查结果对象集合</li> * <li>recordTime:投票时间</li> * </ul> * * @author 吴智俊 */ @Entity @Table(name = "plugin_vote_person") @SequenceGenerator(name = "seq_plugin_vote_person", sequenceName = "seq_plugin_vote_person_id", allocationSize = 1) public class Person implements Serializable { private static final long serialVersionUID = 4350370572885048704L; @Id @GeneratedValue(generator = "seq_plugin_vote_person", strategy = GenerationType.SEQUENCE) @Column(name = "id") private Long id; @Column(name = "ip", nullable = false) private String ip; @Column(name = "questionnaire_id") private Long questionnaireId; @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity = Record.class, orphanRemoval = true) @JoinColumn(name = "person_id") @OrderBy(value = "id") private List<Record> records = new ArrayList<Record>(); @Temporal(TemporalType.TIMESTAMP) @Column(name = "recordtime") private Date recordTime; public Person(){ recordTime = new Date(Calendar.getInstance().getTime().getTime()); } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getIp() { return ip; } public void setIp(String ip) { this.ip = ip; } public Long getQuestionnaireId() { return questionnaireId; } public void setQuestionnaireId(Long questionnaireId) { this.questionnaireId = questionnaireId; } public List<Record> getRecords() { return records; } public void setRecords(List<Record> records) { this.records = records; } public Date getRecordTime() { return recordTime; } public void setRecordTime(Date recordTime) { this.recordTime = recordTime; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Person other = (Person) obj; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; return true; } }