package org.tests.model.draftable;
import io.ebean.Finder;
import io.ebean.annotation.DraftOnly;
import io.ebean.annotation.Draftable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import java.sql.Timestamp;
import java.util.List;
@Draftable
@Entity
public class Document extends BaseDomain {
public static DocumentFinder find = new DocumentFinder();
@Column(unique = true)
String title;
String body;
@DraftOnly
Timestamp whenPublish;
@ManyToOne
Organisation organisation;
/**
* Relationship to draftable elements.
*/
//@PrivateOwned
@OneToMany(mappedBy = "document")//, cascade = CascadeType.ALL)
List<DocumentMedia> media;
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 Organisation getOrganisation() {
return organisation;
}
public void setOrganisation(Organisation organisation) {
this.organisation = organisation;
}
public List<DocumentMedia> getMedia() {
return media;
}
public void setMedia(List<DocumentMedia> media) {
this.media = media;
}
public Timestamp getWhenPublish() {
return whenPublish;
}
public void setWhenPublish(Timestamp whenPublish) {
this.whenPublish = whenPublish;
}
public static class DocumentFinder extends Finder<Long,Document> {
DocumentFinder() {
super(Document.class);
}
public Document asDraft(Long id) {
return query().asDraft().setId(id).findUnique();
}
}
}