我正在使用Spring-hibernate Framework和Oracle数据库。现在有一个名为project的表。每条记录都有唯一的id,name和parent_id列。假设该表有以下记录......
ID NAME PARENT_ID
1 A NULL
2 B 1
3 C NULL
4 D 3
5 E 3
现在我创建了一个树视图,其中这些记录将根据其父子关系显示。喜欢这个..
1---P
ch---2
3---P
ch--4
ch--5
现在任何人都可以帮助我如何创建动态动态地从数据库中获取记录的树。什么是数据访问对象(DAO)和DAO的实现..
任何帮助或建议都会非常有用。
答案 0 :(得分:0)
首先只选择PARENT_ID。然后选择ID在上一个结果数组中的所有内容(http://www.w3schools.com/sql/sql_in.asp)。
我不确定DAO与它有什么关系。但是如果你只想要一些抽象,你可以使用DAO模式。
DAO可以使用以下方法: getAllParents,getChildrenForParentId,getAllChildren, ......
答案 1 :(得分:0)
在POM(.java类)中创建自我表引用,其中List类型为一对多注释。
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "PARENT_ID",nullable=true)
@OrderBy(clause = "NAME")
@ForeignKey(name = "fk_child_project")
private List<Project> projects= new ArrayList<Project>();
答案 2 :(得分:0)
您需要的是Oracle Hierarchical query。由于您使用的是Oracle DB,因此您很幸运。
但是,通过Hibernate实现这一目标的唯一方法是使用本机查询并将结果映射回Objects。
答案 3 :(得分:0)