package org.opentides.bean; import java.util.ArrayList; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.Table; import org.opentides.bean.user.BaseUser; import org.opentides.util.DateUtil; import org.springframework.web.multipart.MultipartFile; @Entity @Table(name = "COMMENT_") public class Comment extends BaseEntity implements Uploadable { private static final long serialVersionUID = -7263338041829245226L; @Column(name = "TEXT_", length = 2000) private String text; @OneToOne(fetch=FetchType.LAZY) @JoinColumn(name="AUTHOR_ID", nullable=false) private BaseUser author; @OneToMany(cascade=CascadeType.ALL, fetch = FetchType.LAZY) @JoinTable(name = "COMMENT_FILE", joinColumns = { @JoinColumn(name = "COMMENT_ID", referencedColumnName = "ID") }, inverseJoinColumns = @JoinColumn(name = "FILE_ID") ) private List<FileInfo> files; private transient MultipartFile file; public String getText() { return text; } public void setText(String text) { this.text = text; } public BaseUser getAuthor() { return author; } public void setAuthor(BaseUser author) { this.author = author; } public String getPrettyCreateDate(){ return DateUtil.dateToString(getCreateDate(), "MMM dd,yyyy hh:mm a"); } // Uploadable requirements @Override public List<FileInfo> getFiles() { return files; } @Override public MultipartFile getFile() { return file; } public void setFiles(List<FileInfo> files) { this.files = files; } public void setFile(MultipartFile file) { this.file = file; } public void addFile(FileInfo fileInfo){ synchronized (fileInfo) { if (files == null){ files = new ArrayList<FileInfo>(); } files.add(fileInfo); } } // End of Uploadable requirements }