CompoEntryFile.java 2.89 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;

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

/**
 * 
 */
@Entity
@Table(name = "entry_files")
@OptimisticLocking(type = OptimisticLockingType.CHANGED_COLUMNS)
public class CompoEntryFile extends GenericEventChild {
    private static final long serialVersionUID = 1L;
    @Column(name = "mime_type")
    private String mimeType;

    @Column(name = "file_name")
    private String fileName;

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

    @Column(name = "hash")
    private String hash;

    @Lob
    @Column(name = "file_data")
    private byte[] fileData;

    @Column(name = "uploaded", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Calendar uploaded = Calendar.getInstance();

    @JoinColumns({
            @JoinColumn(name = "entry_id", referencedColumnName = "id", nullable = false, updatable = false),
            @JoinColumn(name = "event_id", referencedColumnName = "event_id", nullable = false, updatable = false, insertable = false) })
    @ManyToOne(optional = false)
    private CompoEntry entry;

    public CompoEntryFile() {
        super();
    }

    public CompoEntryFile(LanEvent event, CompoEntry entry) {
        super(event);
        this.entry = entry;
    }

    public String getMimeType() {
        return mimeType;
    }

    public void setMimeType(String mimeType) {
        this.mimeType = mimeType;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public String getDescription() {
        return description;
    }

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

    public String getHash() {
        return hash;
    }

    public void setHash(String hash) {
        this.hash = hash;
    }

    public byte[] getFileData() {
        return fileData;
    }

    public void setFileData(byte[] fileData) {
        this.fileData = fileData;
    }

    public Calendar getUploaded() {
        return uploaded;
    }

    public void setUploaded(Calendar uploaded) {
        this.uploaded = uploaded;
    }

    public CompoEntry getEntriesId() {
        return entry;
    }

    public void setEntriesId(CompoEntry entriesId) {
        this.entry = entriesId;
    }

}