关于ibatis的关联查询 5
Department类的属性:Integerdid;Stringdname;DepartmentparentDepartment;List<Department>chil...
Department类的属性:
Integer did;
String dname;
Department parentDepartment;
List<Department> childDepartment;
问题:怎么用ibatis在查询一个Department的时候,把它的上级部门和所以子部门一起查出来,下边图片中的写法会出现死循环,导致内存溢出,正确写法是什么,求解答 展开
Integer did;
String dname;
Department parentDepartment;
List<Department> childDepartment;
问题:怎么用ibatis在查询一个Department的时候,把它的上级部门和所以子部门一起查出来,下边图片中的写法会出现死循环,导致内存溢出,正确写法是什么,求解答 展开
展开全部
部门和上级部门是放在一张表里面的?用parentId来做区分!(前台是个树桩图)如果是这样的有两种方式
第一种:全部查询出来,在在程序里面用递归来组合一维多维的集合或数组。(一次查询所有)
第二钟:一级一级的显示,点到一级在传id到后台查询子集(多次查询)
=============
<resultMap type="Distruct" id="result">
<id property="id" column="did"/>
<result property="name" column="dname"/>
<collection property="list" ofType="Street" column="d_id">
<id property="id" column="sid"/>
<result property="name" column="name"/>
</collection>
</resultMap>
<select id="findById" parameterType="int" resultMap="result">
select s.id sid,s.name,d.id did,d.name dname from street s,distruct d where d.id = s.d_id and d.id=#{id}
</select>
这个是我的一对多,没用什么延迟加载,一个联合查询。要用到collection 这个标签
第一种:全部查询出来,在在程序里面用递归来组合一维多维的集合或数组。(一次查询所有)
第二钟:一级一级的显示,点到一级在传id到后台查询子集(多次查询)
=============
<resultMap type="Distruct" id="result">
<id property="id" column="did"/>
<result property="name" column="dname"/>
<collection property="list" ofType="Street" column="d_id">
<id property="id" column="sid"/>
<result property="name" column="name"/>
</collection>
</resultMap>
<select id="findById" parameterType="int" resultMap="result">
select s.id sid,s.name,d.id did,d.name dname from street s,distruct d where d.id = s.d_id and d.id=#{id}
</select>
这个是我的一对多,没用什么延迟加载,一个联合查询。要用到collection 这个标签
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
您可能需要的服务
百度律临官方认证律师咨询
平均3分钟响应
|
问题解决率99%
|
24小时在线
立即免费咨询律师
16775人正在获得一对一解答
福州梦中仙子3分钟前提交了问题
南昌湖上倒影2分钟前提交了问题
合肥云端漫步2分钟前提交了问题