【发布时间】:2010-04-08 21:58:33
【问题描述】:
所以我被卡住了,我正在创建一个 gwt Web 应用程序,我将使用树(gwt Tree 和 TreeItems)结构来显示文件夹列表(类文件夹)和文件(类 FileLocation)、文件夹和文件位置类都将实现基于复合模式的类的层次结构接口。但我正在使用休眠来存储我的数据,并且我正在使用注释将数据映射到数据库。我的麻烦是我不知道如何注释我的界面。
你们中的任何人在使用 hibernate 持久化数据时使用复合模式
public interface Hierarchy(){
// a few abstract methods that will be implemented by the sub classes
}
@Entity
@Table()
public class Folder implements Serializable, Hierarchy {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "folder_id", updatable = false, nullable = false)
private int id;
@OneToMany(cascade = CascadeType.ALL,fetch = FetchType.EAGER)
@JoinTable(name = "FOLDER_FILELOCATION", joinColumns = {
@JoinColumn(name = "folder_id") }, inverseJoinColumns = {
@JoinColumn(name = "file_information_id") })
private List<Hierarchy> children = new ArrayList<Hierarchy>() ;
@Column(name = "folder_name")
private String folderName;
@Column(name = "tree_item")
private TreeItem item;
@Column (name = "parent")
private Hierarchy parent;
@Entity
@Table(name = "FILE_INFORMATION_TABLE")
public class FileInformation implements Serializable, Hierarchy {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "file_information_id", updatable = false, nullable = false)
private int fiId;
@Column (name = "location")
private String location;
@Column(name = "tree_item")
private TreeItem item;
@Column (name = "parent")
@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
@JoinTable(name="FOLDER_FILELOCATION",
joinColumns = @JoinColumn(name="filelocation_id"),
inverseJoinColumns = @JoinColumn(name="folder_ID"))
private Hierarchy parent;
【问题讨论】:
标签: java database hibernate gwt annotations