package com.hongqiang.shop.modules.entity;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.Table;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;
//消息
@Entity
@Table(name="hq_message")
public class Message extends BaseEntity
{
private static final long serialVersionUID = -5035343536762850722L;
private String title;// 消息标题
private String content;// 消息内容
private String ip;//ip地址
private Boolean isDraft;//是否草稿
private Boolean senderRead;//发送者是否标记已读
private Boolean receiverRead;//收件人是否已读
private Boolean senderDelete;//发送者是否删除
private Boolean receiverDelete;//收件人是否删除
private Member sender;// 消息发出会员,为null时表示管理员
private Member receiver;// 消息接收会员,为null时表示管理员
private Message forMessage;//发送的消息
private Set<Message> replyMessages = new HashSet<Message>();//回复的消息
@Column(nullable=false, updatable=false)
public String getTitle()
{
return this.title;
}
public void setTitle(String title)
{
this.title = title;
}
@NotEmpty
@Length(max=1000)
@Column(nullable=false, updatable=false, length=1000)
public String getContent()
{
return this.content;
}
public void setContent(String content)
{
this.content = content;
}
@Column(nullable=false, updatable=false)
public String getIp()
{
return this.ip;
}
public void setIp(String ip)
{
this.ip = ip;
}
@Column(nullable=false, updatable=false)
public Boolean getIsDraft()
{
return this.isDraft;
}
public void setIsDraft(Boolean isDraft)
{
this.isDraft = isDraft;
}
@Column(nullable=false)
public Boolean getSenderRead()
{
return this.senderRead;
}
public void setSenderRead(Boolean senderRead)
{
this.senderRead = senderRead;
}
@Column(nullable=false)
public Boolean getReceiverRead()
{
return this.receiverRead;
}
public void setReceiverRead(Boolean receiverRead)
{
this.receiverRead = receiverRead;
}
@Column(nullable=false)
public Boolean getSenderDelete()
{
return this.senderDelete;
}
public void setSenderDelete(Boolean senderDelete)
{
this.senderDelete = senderDelete;
}
@Column(nullable=false)
public Boolean getReceiverDelete()
{
return this.receiverDelete;
}
public void setReceiverDelete(Boolean receiverDelete)
{
this.receiverDelete = receiverDelete;
}
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(updatable=false)
public Member getSender()
{
return this.sender;
}
public void setSender(Member sender)
{
this.sender = sender;
}
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(updatable=false)
public Member getReceiver()
{
return this.receiver;
}
public void setReceiver(Member receiver)
{
this.receiver = receiver;
}
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(updatable=false)
public Message getForMessage()
{
return this.forMessage;
}
public void setForMessage(Message forMessage)
{
this.forMessage = forMessage;
}
@OneToMany(mappedBy="forMessage", fetch=FetchType.LAZY, cascade={javax.persistence.CascadeType.REMOVE})
@OrderBy("createDate asc")
public Set<Message> getReplyMessages()
{
return this.replyMessages;
}
public void setReplyMessages(Set<Message> replyMessages)
{
this.replyMessages = replyMessages;
}
}