Poll.java 2.58 KB
package fi.insomnia.bortal.model;

import static javax.persistence.TemporalType.TIMESTAMP;

import java.util.ArrayList;
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.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.Table;
import javax.persistence.Temporal;

import org.eclipse.persistence.annotations.OptimisticLocking;
import org.eclipse.persistence.annotations.OptimisticLockingType;

/**
 * Entity implementation class for Entity: Poll
 * 
 */
@Entity
@Table(name = "poll")
@OptimisticLocking(type = OptimisticLockingType.CHANGED_COLUMNS)
public class Poll extends GenericEntity {

    /**
     * 
     */
    private static final long serialVersionUID = -5655775315722028984L;

    public static final String EVENT_ID_COLUMN = "event_id";
    @ManyToOne()
    @JoinColumn(name = EVENT_ID_COLUMN, nullable = false)
    private LanEvent event;

    @Temporal(TIMESTAMP)
    @Column(name = "opening_time", nullable = false)
    private Date begin = new Date();

    @Temporal(TIMESTAMP)
    @Column(name = "closing_time", nullable = false)
    private Date end = new Date();

    @Column(name = "name", nullable = false)
    private String name;

    @Lob
    @Column(name = "description", nullable = true)
    private String description;

    @OrderBy("sort")
    @OneToMany(mappedBy = "poll", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    private List<PollQuestion> questions = new ArrayList<PollQuestion>();

    public Poll() {
        super();
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public void setQuestions(List<PollQuestion> questions) {
        this.questions = questions;
    }

    public List<PollQuestion> getQuestions() {
        return questions;
    }

    public Date getEnd() {
        return end;
    }

    public void setEnd(Date end) {
        this.end = end;
    }

    public Date getBegin() {
        return begin;
    }

    public void setBegin(Date begin) {
        this.begin = begin;
    }

    public LanEvent getEvent() {
        return event;
    }

    public void setEvent(LanEvent event) {
        this.event = event;
    }

}