GenericEventChild.java 1.64 KB
package fi.insomnia.bortal.model;

import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass;
import javax.persistence.Version;

import fi.insomnia.bortal.utilities.jpa.ModelInterface;

@MappedSuperclass
public abstract class GenericEventChild extends EntityEquals implements ModelInterface<EventPk> {

    private static final long serialVersionUID = -9041737052951021560L;

    public static final String ID_COLUMN = "id";
    @EmbeddedId
    private EventPk id;
    @Version
    @Column(nullable = false)
    private int jpaVersionField = 0;

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

    public GenericEventChild(LanEvent event) {
        id = new EventPk(event);
        this.event = event;
    }

    public GenericEventChild() {
        super();
    }

    public GenericEventChild(EventPk eventPk) {
        id = new EventPk(eventPk.getEventId());
    }

    @Override
    public final EventPk getId() {
        return id;
    }

    @Override
    public final void setId(EventPk id) {
        this.id = id;
    }

    @Override
    public final int getJpaVersionField() {
        return jpaVersionField;
    }

    @Override
    public final void setJpaVersionField(int jpaVersionField) {
        this.jpaVersionField = jpaVersionField;
    }

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

    public final LanEvent getEvent() {
        return event;
    }

}