package fi.otavanopisto.muikku.plugins.forum.model; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import javax.persistence.ManyToOne; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Version; import javax.validation.constraints.NotNull; import fi.otavanopisto.muikku.model.util.ArchivableEntity; @Entity @Inheritance(strategy=InheritanceType.JOINED) public abstract class ForumMessage implements ArchivableEntity { public Long getId() { return id; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public ForumArea getForumArea() { return forumArea; } public void setForumArea(ForumArea forumArea) { this.forumArea = forumArea; } public Boolean getArchived() { return archived; } public void setArchived(Boolean archived) { this.archived = archived; } public Long getCreator() { return creator; } public void setCreator(Long creator) { this.creator = creator; } public Date getCreated() { return created; } public void setCreated(Date created) { this.created = created; } public Long getLastModifier() { return lastModifier; } public void setLastModifier(Long lastModifier) { this.lastModifier = lastModifier; } public Date getLastModified() { return lastModified; } public void setLastModified(Date lastModified) { this.lastModified = lastModified; } public Long getVersion() { return version; } public void setVersion(Long version) { this.version = version; } @Id @GeneratedValue (strategy = GenerationType.IDENTITY) private Long id; @ManyToOne private ForumArea forumArea; @Column(length = 1073741824) private String message; @NotNull @Column(nullable = false) private Boolean archived = Boolean.FALSE; @Column (name = "creator_id") private Long creator; @NotNull @Column (updatable=false, nullable=false) @Temporal (value=TemporalType.TIMESTAMP) private Date created; @Column (name = "lastModifier_id") private Long lastModifier; @NotNull @Column (nullable=false) @Temporal (value=TemporalType.TIMESTAMP) private Date lastModified; @Version @Column(nullable = false) private Long version; }