大家先见如下代码: public String findZGAndManigerByHandDepartment(String sheetHandDepartment){
System.out.println("传入的部门ID为:"+sheetHandDepartment);
HibernateTemplate ht = getHibernateTemplate();
final String str = sheetHandDepartment;
return (String) ht.execute(new HibernateCallback() { public Object doInHibernate(Session session) throws
HibernateException {
Query queryRoot = session
.createSQLQuery("select {o.*} from TBL_DEPARTMENTS {o} where {o}.DEPARTMENT_ID='"+str+"'", "o", Department.class);
Iterator iter = queryRoot.list().iterator();
if (iter.hasNext()) {
Department ctvo = (Department) iter.next();
String sheetHand = ctvo.getParentID();
if (sheetHand.length()>1){
findZGAndManigerByHandDepartment(sheetHand);
}
System.out.println("返回的部门ID为:"+ctvo.getDeptID());
return ctvo.getDeptID();
}
return "";
}
});
}
调用该方法时传入参数为:findZGAndManigerByHandDepartment("8a74885a2f30559f012f8bb287430772");你们假如这个递归只是被调用了三次,形如:
传入的部门ID为:8a74885a2f30559f012f8bb287430772
传入的部门ID为:8a74885a2f30559f012f8bb0e8dc074a
传入的部门ID为:ff8080812dc1758a012dc556ed0900ed
那么System.out.println("返回的部门ID为:"+ctvo.getDeptID());这句话会执行多少次呢?产生的原因是什么呢?怎么解决呢?
System.out.println("传入的部门ID为:"+sheetHandDepartment);
HibernateTemplate ht = getHibernateTemplate();
final String str = sheetHandDepartment;
return (String) ht.execute(new HibernateCallback() { public Object doInHibernate(Session session) throws
HibernateException {
Query queryRoot = session
.createSQLQuery("select {o.*} from TBL_DEPARTMENTS {o} where {o}.DEPARTMENT_ID='"+str+"'", "o", Department.class);
Iterator iter = queryRoot.list().iterator();
if (iter.hasNext()) {
Department ctvo = (Department) iter.next();
String sheetHand = ctvo.getParentID();
if (sheetHand.length()>1){
findZGAndManigerByHandDepartment(sheetHand);
}
System.out.println("返回的部门ID为:"+ctvo.getDeptID());
return ctvo.getDeptID();
}
return "";
}
});
}
调用该方法时传入参数为:findZGAndManigerByHandDepartment("8a74885a2f30559f012f8bb287430772");你们假如这个递归只是被调用了三次,形如:
传入的部门ID为:8a74885a2f30559f012f8bb287430772
传入的部门ID为:8a74885a2f30559f012f8bb0e8dc074a
传入的部门ID为:ff8080812dc1758a012dc556ed0900ed
那么System.out.println("返回的部门ID为:"+ctvo.getDeptID());这句话会执行多少次呢?产生的原因是什么呢?怎么解决呢?
解决方案 »
- java数据库操作方法是否要加线程锁
- servlet乱码问题
- 是否是hibernate处理时间方式造成的问题还是jdbc的问题
- dwr如何调用struts中的action的execute方法?
- Struts和hibernate问题;
- 如何在环境变量中设置数据库连接包?各位高手帮帮忙!在线等,急呀!!!!
- eclipse2.13如何配置Tomcat5 eclipse3又该如何配置Tomcat5
- 想buy <Jakarta Struts编程>
- 《精通ejb》中的helloworld运行客户端的问题,实在没有办法了,大家帮帮我好吗?
- org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read c
- tomcat 的当前目录问题
- 如何使用proxool连接池,跨库存取数据
传入的部门ID为:8a74885a2f30559f012f8bb287430772
传入的部门ID为:8a74885a2f30559f012f8bb0e8dc074a
传入的部门ID为:ff8080812dc1758a012dc556ed0900ed
最终我们会得到哪个呢?