ibatis 조회 실체 클래스 에는 실체 클래스 가 한 쌍 이상 포함 되 어 있 습 니 다.
xml 코드:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="sys">
<typeAlias alias="menu" type="com.cuishen.sqlmaptest.vo.Menu" />
<resultMap id="sub-menu-map" class="menu">
<result property="id" column="subid" />
<result property="name" column="subname" />
<result property="url" column="suburl" />
<result property="layer" column="sublayer" />
<result property="grade" column="subgrade" />
<result property="position" column="subposition" />
<result property="parentId" column="subparentid" />
</resultMap>
<resultMap id="menu-map" class="menu" groupBy="id">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="url" column="url" />
<result property="layer" column="layer" />
<result property="grade" column="grade" />
<result property="position" column="position" />
<result property="parentId" column="parentid" />
<result property="subMenus" resultMap="sys.sub-menu-map" />
</resultMap>
<select id="getTopMenu" parameterClass="java.util.HashMap" resultMap="sys.menu-map">
select
t.id as id,t.name as name,t.url as url,t.layer as layer,t.grade as grade,t.position as position,
t.parentid as parentid,s.id as subid,s.name as subname,s.url as suburl,s.layer as sublayer,
s.grade as subgrade,s.position as subposition,s.parentid as subparentid
from menu t left join menu s
on t.id = s.parentid
where t.layer=1 order by t.position, s.position
</select>
</sqlMap>
com.cuishen.sqlmaptest.vo.Menu 는 다음 과 같 습 니 다.
package com.cuishen.sqlmaptest.vo;
import java.util.List;
/**
* POJO -
* @author cuishen
*/
public class Menu implements java.io.Serializable {
private static final long serialVersionUID = 7172793340860021199L;
private Long id;
private String name;
private String url;
private Short layer;
private Short grade;
private Short position;
private Long parentId;
private List subMenus;
public Menu() { }
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
//...
//getter、setter
//...
public List getSubMenus() {
return subMenus;
}
public void setSubMenus(List subMenus) {
this.subMenus = subMenus;
}
}
주의:
1.이 설정 에 주의 하 십시오:
2.다 중/다 중 맵 의 집합 속성 subMenus 는 간단 한 getter/setter 를 사용 해 야 합 니 다.getter/setter 에서 다른 처 리 를 할 수 없습니다.그렇지 않 으 면 iBATIS 가 잘못 보고 할 수 있 습 니 다!!
3.iBATIS 2.3.0.677 에서 테스트 를 통 과 했 습 니 다.더 오래된 버 전 은 이 해결 방안 을 지원 하지 않 을 수 있 습 니 다!!
iBATIS 3.0 부터 이 솔 루 션 의 설정 은 xlm 코드 로 바 뀌 었 습 니 다.
<resultMap id="blogResult" type="Blog">
<id property=”id” column="blog_id" />
<result property="title" column="blog_title"/>
<collection property="posts" ofType="Post">
<id property="id" column="post_id"/>
<result property="subject" column="post_subject"/>
<result property="body" column="post_body"/>
</collection>
</resultMap>
다음으로 이동:
http://cuishen.iteye.com/blog/544207
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ibatis 하위 대상 조회텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.