package fi.arcusys.koku.common.service.datamodel;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
/**
* Entity for representing reference to message in KV-Messages functionality.
*
* @author Dmitry Kudinov (dmitry.kudinov@arcusys.fi)
* May 20, 2011
*/
@Entity
@NamedQueries({
@NamedQuery(name = MessageRef.GET_MESSAGE_REFS_BY_IDS, query = "SELECT mr FROM MessageRef mr WHERE mr.id in (:ids) ORDER BY mr.id DESC"),
@NamedQuery(name = "findOldMessagesByFolderType", query = "SELECT mr FROM MessageRef mr WHERE mr.folder.folderType in (:folderTypes) AND mr.createdDate < :olderThen"),
@NamedQuery(name = "findOldMessagesByUserAndFolderType", query = "SELECT mr FROM MessageRef mr WHERE mr.folder.folderType in (:folderTypes) AND mr.folder.user = :user AND mr.createdDate < :olderThen"),
@NamedQuery(name = MessageRef.DELETE_MESSAGE_REFS_BY_IDS, query = "DELETE FROM MessageRef mr WHERE mr.id in (:ids)"),
@NamedQuery(name = "deleteOldMessages", query = "DELETE FROM MessageRef mr WHERE mr.createdDate < :olderThen")
})
public class MessageRef extends AbstractEntity {
public static final String GET_MESSAGE_REFS_BY_IDS = "getMessageRefsByIds";
public static final String DELETE_MESSAGE_REFS_BY_IDS = "deleteMessageRefsByIds";
private boolean isRead;
@ManyToOne
private Folder folder;
@ManyToOne
private Message message;
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private Set<User> deliveryFailedTo;
/**
* @return the deliveryFailedTo
*/
public Set<User> getDeliveryFailedTo() {
return deliveryFailedTo;
}
/**
* @param deliveryFailedTo the deliveryFailedTo to set
*/
public void setDeliveryFailedTo(Set<User> deliveryFailedTo) {
this.deliveryFailedTo = deliveryFailedTo;
}
/**
* @return the isRead
*/
public boolean isRead() {
return isRead;
}
/**
* @param isRead the isRead to set
*/
public void setRead(boolean isRead) {
this.isRead = isRead;
}
/**
* @return the folder
*/
public Folder getFolder() {
return folder;
}
/**
* @param folder the folder to set
*/
public void setFolder(Folder folder) {
this.folder = folder;
}
/**
* @return the message
*/
public Message getMessage() {
return message;
}
/**
* @param message the message to set
*/
public void setMessage(Message message) {
this.message = message;
}
}