楼主的意思就是一个一对多的自身关联,创建一个树形结构
<set name="organizations" lazy="extra" inverse="true">
<key>
<column name="parent" precision="22" scale="0"/>
</key>
<one-to-many class="com.kernelchina.hnccb.am.model.bizobject.Organization"/>
</set>
<many-to-one name="organizations" column="parent"/>在新增时如何将上级的ID添加到下极的PAENT中:
//File为电脑某盘某目录的文件,做一个文件的递归读取
// 递归创建一棵树
private void saveTree(File file, Session session, Organization parent, int level) { if (file == null || !file.exists()) {
return;
} boolean isLeaf = file.isFile();
Organization org = new Organization();
org.setName(file.getName());
org.setLevel(level);
org.setParent(parent);
org.setLeaf(isLeaf);
session.save(org); File[] subs = file.listFiles();
if (subs != null && subs.length > 0) {
for (int i = 0; i < subs.length; i++) {
saveTree(subs[i], session, org, level + 1);
}
}
}
例子只是简单说明一下,即采用递归来增加organization,最好在加入一个level等级的属性,便于添加
<set name="organizations" lazy="extra" inverse="true">
<key>
<column name="parent" precision="22" scale="0"/>
</key>
<one-to-many class="com.kernelchina.hnccb.am.model.bizobject.Organization"/>
</set>
<many-to-one name="organizations" column="parent"/>在新增时如何将上级的ID添加到下极的PAENT中:
//File为电脑某盘某目录的文件,做一个文件的递归读取
// 递归创建一棵树
private void saveTree(File file, Session session, Organization parent, int level) { if (file == null || !file.exists()) {
return;
} boolean isLeaf = file.isFile();
Organization org = new Organization();
org.setName(file.getName());
org.setLevel(level);
org.setParent(parent);
org.setLeaf(isLeaf);
session.save(org); File[] subs = file.listFiles();
if (subs != null && subs.length > 0) {
for (int i = 0; i < subs.length; i++) {
saveTree(subs[i], session, org, level + 1);
}
}
}
例子只是简单说明一下,即采用递归来增加organization,最好在加入一个level等级的属性,便于添加
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货