News.java 3.44 KB
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fi.insomnia.bortal.model;

import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * 
 * @author jkj
 */
@Entity
@Table(name = "news")
@NamedQueries({
        @NamedQuery(name = "News.findAll", query = "SELECT n FROM News n"),

        @NamedQuery(name = "News.findByTitle", query = "SELECT n FROM News n WHERE n.title = :title"),
        @NamedQuery(name = "News.findByBody", query = "SELECT n FROM News n WHERE n.body = :body"),
        @NamedQuery(name = "News.findByAbstract", query = "SELECT n FROM News n WHERE n.bodyAbstract = :bodyAbstract"),
        @NamedQuery(name = "News.findByPublish", query = "SELECT n FROM News n WHERE n.publish = :publish"),
        @NamedQuery(name = "News.findByExpire", query = "SELECT n FROM News n WHERE n.expire = :expire"),
        @NamedQuery(name = "News.findByPriority", query = "SELECT n FROM News n WHERE n.priority = :priority") })
public class News extends GenericEventChild {

    private static final long serialVersionUID = 498925968565236275L;

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

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

    @Lob
    @Column(name = "abstract")
    private String bodyAbstract;

    @Column(name = "publish")
    @Temporal(TemporalType.TIMESTAMP)
    private Calendar publish;

    @Column(name = "expire")
    @Temporal(TemporalType.TIMESTAMP)
    private Calendar expire;

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

    @JoinColumns({
            @JoinColumn(name = "news_group_id", referencedColumnName = "id", nullable = false),
            @JoinColumn(name = "event_id", referencedColumnName = "event_id", nullable = false, updatable = false, insertable = false) })
    @ManyToOne(optional = false)
    private NewsGroup group;

    public News() {
        super();
    }

    public News(LanEvent event, String title, int priority) {
        super(event);
        this.title = title;
        this.priority = priority;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    public String getBodyAbstract() {
        return bodyAbstract;
    }

    public void setBodyAbstract(String abstract1) {
        this.bodyAbstract = abstract1;
    }

    public Calendar getPublish() {
        return publish;
    }

    public void setPublish(Calendar publish) {
        this.publish = publish;
    }

    public Calendar getExpire() {
        return expire;
    }

    public void setExpire(Calendar expire) {
        this.expire = expire;
    }

    public int getPriority() {
        return priority;
    }

    public void setPriority(int priority) {
        this.priority = priority;
    }

    public NewsGroup getGroup() {
        return group;
    }

    public void setGroup(NewsGroup newsGroupsId) {
        this.group = newsGroupsId;
    }

}