1:在显示部门的下拉框中
这个功能的实现思路是:首先department类是有parent和childs【set集合】属性的,所以可以根据某个department得到它的父和子!那么就根据树的形式来递归得到所有的节点(department)吧!
设计两个方法,一个要得到所有的最高顶点(通过service实现),另一个方法打印顶点(传参数顶点)并且得到子节点然后再调用自己!
这个时候出现了两个问题,一个是在显示框中的|-符号防止保存到数据库中去,这个符号是在我们得到department对象的通过utils方法加上去的,好了逻辑是这样的,前面的service得到对象--utils加上符号然后显示,当我们不小心在utils后面又调用了一次service的方法后,这个符号就会保存到数据库中去,应为service的开启就对应着事务transactions的开始,service的关闭对于的事务的commit!
要解决这个符号不保存到数据库中去,需要知道,我们在herbinate懒加载那一篇博客中说过,延长了session的生命周期,我们的框架决定只有session管理的对象才能保存到数据库中,那么我们两种方法:
1 不使用session管理的对象