package io.loli.sc.server.entity.pan; import io.loli.sc.server.entity.User; import java.io.Serializable; import java.util.Date; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import com.fasterxml.jackson.annotation.JsonIgnore; @Table(name = "storage_folder") @Entity @NamedQueries(value = { @NamedQuery(name = "FolderEntity.listByUserAndPath", query = "SELECT f FROM FolderEntity f WHERE f.user.id=:userId and f.fullPath=:path"), @NamedQuery(name = "FolderEntity.listByUserAndParent", query = "SELECT f FROM FolderEntity f WHERE f.user.id=:userId and f.parent.id=:parentId") }) public class FolderEntity implements Serializable { private static final long serialVersionUID = 1369695803049170073L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; @ManyToOne @JoinColumn(name = "parent_id") @JsonIgnore private FolderEntity parent; @ManyToOne @JoinColumn(name = "user_id") @JsonIgnore private User user; @Column private String name; @Column(name = "full_path") private String fullPath; @Temporal(TemporalType.TIMESTAMP) @Column(name = "create_date") private Date createDate; // 直属子文件夹 @OneToMany(mappedBy = "parent") @JsonIgnore private List<FolderEntity> children; // 直属子文件 @OneToMany(mappedBy = "folder") @JsonIgnore private List<FileEntity> fileList; public int getId() { return id; } public void setId(int id) { this.id = id; } public FolderEntity getParent() { return parent; } public void setParent(FolderEntity parent) { this.parent = parent; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getCreateDate() { return createDate; } public void setCreateDate(Date createDate) { this.createDate = createDate; } public List<FolderEntity> getChildren() { return children; } public void setChildren(List<FolderEntity> children) { this.children = children; } public List<FileEntity> getFileList() { return fileList; } public void setFileList(List<FileEntity> fileList) { this.fileList = fileList; } public String getFullPath() { return fullPath; } public void setFullPath(String fullPath) { this.fullPath = fullPath; } }