package cn.newgxu.bbs.domain.message;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import cn.newgxu.bbs.domain.user.User;
import cn.newgxu.jpamodel.JPAEntity;
import cn.newgxu.jpamodel.ObjectNotFoundException;
/**
*
* @author 红叶狐
* @since 4.0.0
* @version $Revision 1.1$
*/
@Entity
@Table(name = "message_folder")
public class MessageFolder extends JPAEntity {
private static final long serialVersionUID = 7472550896174839027L;
@Id
@Column(name = "id")
// @GeneratedValue(strategy = GenerationType.SEQUENCE,generator="id_seq")
// @SequenceGenerator(name="id_seq", sequenceName="seq_message_folder")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id = -1;
@ManyToOne(cascade = { CascadeType.REFRESH }, fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
private User user;
@Column(name = "name", length = 8)
private String name;
private int size;
@Column(name = "create_time")
private Date time;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
// ------------------------------------------------
public static MessageFolder get(int fid) throws ObjectNotFoundException {
return (MessageFolder) getById(MessageFolder.class, fid);
}
public static MessageFolder getDefaultFolder() {
MessageFolder folder;
try {
folder = get(1);
} catch (ObjectNotFoundException e) {
folder = new MessageFolder();
folder.setId(1);
folder.setSize(30);
}
return folder;
}
public static MessageFolder getDraftFolder() {
MessageFolder folder;
try {
folder = get(2);
} catch (ObjectNotFoundException e) {
folder = new MessageFolder();
folder.setId(2);
folder.setSize(30);
}
return folder;
}
public static MessageFolder getTrackFolder() {
MessageFolder folder;
try {
folder = get(3);
} catch (ObjectNotFoundException e) {
folder = new MessageFolder();
folder.setId(3);
folder.setSize(30);
}
return folder;
}
@SuppressWarnings("unchecked")
public List<MessageFolder> getReceivedMessages(User user) {
return (List<MessageFolder>) Q(
"from MessageFolder f where f.user = ?1 order id asc",
P(1, user)).getResultList();
}
}