최대 절전 모드를 학습 할 때 편집자는 다양한 매핑에 노출되었습니다. mybatis의 매핑은 어떻게 작동합니까? 오늘이 블로그 게시물에서 편집자는 주로 일대일, 일대일 및 다수를 포함하여 Mybatis의 고급 매핑을 간단히 소개합니다. 도움이 필요한 친구들이 도움이되기를 바랍니다. 편집자는 주로 Order Product Data 모델, 일대일 쿼리, 일대일 쿼리 및 다수의 쿼리를 소개합니다.
1. 제품 데이터 모델을 주문하십시오
1. 데이터베이스 실행 스크립트는 다음과 같습니다.
<span style = "font-family : comic sans ms; font-size : 18px;"> 테이블 항목 만들기 (ID int null auto_increment, item nam varchar (32) null 댓글 '제품 이름', 가격 플로트 (10,1) null 댓글 '제품 가격', 세부 사항 텍스트 '제품 설명', PIC VarChar (64)의 널 댓글 ', 널 널 null' 기본 키 (ID)) 기본 charset = utf8; / *테이블`orderDetail` */ Table OrderDetail 생성 (id int auto_increment, orders_id int null not und ind ind id ', items_id int null comment'product id ', items_num int default null 댓글'제품 구매 (ID), 키`fk_orderdetail_1`) `fk_orderDetail_2` (`items_id`), 제약`fk_orderDetail_1` 외국 키 (`orders_id`) 참조`orders` (`id`)``orders '(`id`)는 업데이트에 대한 조치 삭제에 대한`orders'(`id`)를 참조하지 않습니다. charset = utf8; / *테이블`orders` */ 테이블 주문 생성 (ID int not null auto_increment, user_Id int int not null comment 'Order id', 숫자 varchar (30) null 댓글 '주문 번호', createTime dateTime not null 댓글이 아닌 숫자 댓글 '순서 시간 만들기', default null 댓글 'note', 1 차 키 ( 'id`) 제약`fk_orders_id` 외국 키 (`user_id`) 참조`t_user` (`id`)에서 업데이트 없음에 대한 조치 삭제 없음) 기본 charset = utf8; / *테이블`t_user` */ 테이블 구조 테이블 구조 t_user (id int null auto_increment, username varchar (32) null 댓글 '사용자 이름', 생일 날짜 기본 널 댓글 '생일', 섹스 숯 (1) 기본 널 댓글 '젠더', varchar (256) default null 댓글 '주소'), 1 차 키 (``) </span>
테스트 데이터 코드
<span style = "font-family : comic sans ms; font-size : 18px;">/ *테이블`items` */ insert is in icrem (itemsname, 가격, 세부, 그림, createTime) 값 ( '데스크탑', 3000.0, '이 컴퓨터는 좋은 품질입니다!', NULL, '2015-07-07 13:53'), ( '노트북', 6000.0, '노트북', 좋은 성능, 좋은 품질! ', null,'2015-07-08 13:22:57 '), ('배낭 ', 200.0,'클래스 브랜드 배낭, 대자력 및 좋은 품질! ','2015-07-010 13:25:02 '); / *표에 대한 데이터`orderDetail` */`orderDetail` (`orders_id`,`items_id`,`items_num`) 값 (1,1,1), (1,2,3), (2,3,4), (3,2,3); / *테이블`orders` */`orders` (`user_id`,`숫자 ',```createTime`,'note`) 값 (1, '1000010', '2015-06-04 13 : 22 : 35', null), (1, '1000011', '2015-07-08 13 : 41, null), null), (2, '1000012', '2015-07-17 14 : 13 : 23', NULL), (3, '1000012', '2015-07-16 18 : 13 : 23', NULL), (4, ''1000012 ','2015-07-15 19 : 13 : 23 ', NULL), (5,'1000012 ','2015-0-0-014 17 : 13 : NULL) (6, '1000012', '2015-07-13 16 : 13 : 23', null); / *테이블`user` */`t_user` ( 'username', '``생일',`sex`,`주소 ') 값 ('wang wu ', null,'2 ', null), ('Zhang San ','2014-07-10 ','1 ','beijing ')에 대한 데이터에 대한 데이터 Xiaoming ', Null,'1 ','Zhengzhou, Henan '), ('Chen Xiaoming ', Null,'1 ','Zhengzhou, Henan '), ('Zhang Sanfeng ','1 ','1 ','Zhengzhou, Henan '), ('Zhang Sanfeng ','Zhangzhou ','1 ','Zhengzhou ' ( 'Chen Xiaoming', Null, '1', 'Zhengzhou, Henan')), ( 'Wang Wu', Null, Null, Null), ( 'Xiao A', '2015-06-27', '2', 'Beijing'), ( 'Xiao B', '2015-06-27', '2', ''2 ') C ','2015-06-27 ','1 ','Beijing '), ('Xiao D ','2015-06-27 ','2 ','Beijing '); </span>2. 데이터 모델 분석 아이디어
(1). 각 표에 기록 된 데이터 내용 : 모듈의 각 테이블에 기록 된 내용에 익숙해지며, 이는 학습 시스템 요구 사항 (기능)과 동일합니다.
(2). 각 테이블의 중요한 필드 설정 : 비어 있지 않은 필드, 외국 키 필드;
(3). 데이터베이스 수준 테이블과 테이블의 관계 : 외국 키 관계;
(4). 테이블 간의 비즈니스 관계 : 테이블 간의 비즈니스 관계를 분석 할 때는 분석에 특정 비즈니스 중요성을 기반으로해야합니다.
3. 아래 그림과 같이 주문 제품 모델에 대한 데이터베이스 아이디어 분석 :
2. 일대일 쿼리
2.1. 요구 사항 : 주문 정보 및 사용자 정보를 연결합니다
2.2. 결과 유형 구현
2.2.1 SQL 문
쿼리의 기본 테이블 결정 : 주문 테이블, 쿼리의 연관성 테이블, 사용자 테이블, 코드는 다음과 같습니다.
<span style = "font-family : comic sans ms; font-size : 18px;"> select t1.*, t2.username, t2.sex, t2. address t1, t_user t2 여기서 t1.user_id = t2.id </span </span
2.2.2 엔티티 엔티티를 만듭니다
사용자 엔티티 user.java, 코드는 다음과 같습니다.
<span style = "font-family : comic sans ms; font-size : 18px;"> 패키지 com.mybatis.entity; import java.util.date; Java.util.list 가져 오기; / ** * @className : user * @description : todo (사용자 엔티티) * @author ahvari */ public class user {private integer id; // 이름 개인 문자열 사용자 이름; // 젠더 프라이빗 스트링 섹스; // 개인 문자열 주소 주소; // 생일 개인 데이트 생일; // user-created OrdersList private list <orders> ordersList; // getter and setter ......} </span>주문 엔티티 주문 .java
<span style = "font-family : comic sans ms; font-size : 18px;"> 패키지 com.mybatis.entity; import java.util.date; Java.util.list 가져 오기; / *** @className : 주문* @description : todo (주문 엔티티)* @author ahvari*/ public class 주문 {/ ** 1 차 키 주문 ID*/ 개인 정수 ID; / ** 주문 사용자 ID*/ 개인 정수 userId; / ** 주문 번호*/ 개인 문자열 번호; / ** 주문 시간*/ 개인 날짜 CreateTime; / ** 주*/ 개인 문자열 참고; // 사용자 정보 개인 사용자 사용자; // 주문 세부 사항 개인 목록 <TerderDetail> OrderDetails; // getter and setter ......} </span>제품 엔티티 : items.java
<span style = "font-family : comic sans ms; font-size : 18px;"> 패키지 com.mybatis.entity; import java.util.date; / *** @className : 항목* @Description : TODO (제품 엔티티 클래스)* @Author Ding GuoHua*/ Public Class Items {/ ** 제품 테이블 기본 키 ID*/ 개인 정수 ID; / ** 제품 이름*/ 개인 문자열 항목 이름; / ** 제품 가격*/ 개인 플로트 가격; / ** 제품 설명*/ 개인 문자열 세부 사항; / ** 제품 사진*/ 개인 문자열 사진; / ** 생산 날짜*/ 개인 날짜 CreateTime; // getter and setter ......} </span>주문 세부 사항 엔티티 orderdetail.java
<span style = "font-family : comic sans ms; font-size : 18px;"> 패키지 com.mybatis.entity; / *** @className : OrderDetail* @description : todo (주문 세부 사항 엔티티)* @author Ding Guohua*/ public class orderDetail {/ ** 메인, 세부 사항 목록 ID*/ 개인 정수 ID; / ** id*/ 개인 정수 OrdersId; / ** 제품 ID*/ 개인 정수 항목; / ** 제품 구매 수량*/ 개인 정수 Itemsnum; // 세부 사항에 해당하는 제품 정보 개인 항목 항목; // getter and setter ......} </span>모든 쿼리 정보를이 클래스 OrdersCustom.java에 매핑 할 래퍼 클래스를 작성하십시오.
<span style = "font-family : comic sans ms; font-size : 18px;">/ ** * @classname : orderscustom * @descrous (worderscustom * @descrout :이 클래스를 통해 주문 및 사용자 Query 결과를 맵핑 하여이 클래스를 상속받을 수 있도록 주문 및 사용자 쿼리 결과를지도) * @Author : Ding Guohua *///// // 속성 개인 문자열 사용자 이름; 개인 문자열 섹스; 개인 문자열 주소; // getter and setter ......} </span>
2.2.3 Ordersccustommapper.java 만들기 코드는 다음과 같습니다.
<span style = "font-family : comic sans ms; font-size : 18px;"> package com.mybatis.mapper; Java.util.list 가져 오기; import com.mybatis.entity.orderscustom; / *** @className : OrdersMapperCustom* @Description : todo (OrdersMapperCustom Mapper)* @Author Ding GuoHua*/ public interface OrdersCustOmpapper {/ ** Query Orders, Associate Query 사용자 정보*/ public list <OrdersCustom> findordersUser (); } </span>2.2.4 OrdersCustOmcapper.xml 생성은 해당 인터페이스 이름과 동일합니다. 맵퍼 인터페이스를 통해 구성 파일을로드하는 동안 코드는 다음과 같습니다.
<span style = "font-family : comic sans ms; font-size : 18px;"> <? xml version = "1.0"encoding = "utf-8"?> <! doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http:///dtd. <!-네임 스페이스 네임 스페이스, 기능은 SQL 분리로 이해되는 SQL의 관리를 분류하는 것입니다. SQL 분리 사항 참고 : Mapper 에이전트 개발을 사용하는 경우 네임 스페이스는 특수 함수가 있으며 네임 스페이스는 Mapper 인터페이스 주소와 같습니다.> <Mapper 네임 스페이스 = "com.mybatis.mapper.orderscustommpper "> <!-query user ehoriate-query Orders-" " resulttype = "com.mybatis.entity.orderscustom"> t1.*, t2.username, t2.sex, t2. address t1, t_user t2 여기서 t1.user_id = t2.id </select> </mapper> </span>
2.3 결과 맵 구현
2.3.1 SQL 문은 위와 동일합니다
2.3.2 결과 맵 매핑 아이디어 :
query result의 주문 정보를 주문 객체에 맵핑하고 Orders Class의 사용자 속성을 추가 한 다음 관련 쿼리 사용자 정보를 Orders Object의 사용자 속성에 매핑합니다 (위의 Orders Entity에 추가되었습니다).
2.3.3 Orderscustommapper.xml
1. 결과 맵 정의, 코드는 다음과 같습니다.
<span style = "font-family : comic sans ms; font-size : 18px;"> <!-쿼리 순서 관련 사용자의 결과 맵을 정의하고, 전체 쿼리 결과를 com.mybatis.entity.orders-> <resultmap type = "com.mybatis.entity.orders"id = "orderSeResultmap"> <! 주문 정보의 고유 식별자 인 쿼리 열의 고유 식별자. If multiple columns form a unique identifier (such as: the dictionary table in general database design uses a joint primary key), multiple ids need to be configured column: Unique identification column for order information property: The attribute mapped to the order information by the unique identification column for order information (if: the primary key in the orders table in the database is orders_id, and the entity attribute name is ordersId, then this configuration should be <id 열 = "Orders_id"속성 = "OrdersId"/>, 최대 절전 모드 엔티티 매핑 파일 구성과 유사합니다). -> <id column = "id"속성 = "id"/> <결과 열 = "user_id"property = "userId"/> <result column = "number"속성 = "number"속성 = "number"/> <result column = "createTime"property = "createTime"/> <결과 열 = "note"note "note"/> <result column = "note"/> <result column = "note"-<! 연관 : 관련 쿼리 단일 객체 속성을 매핑하는 데 사용되는 정보 : 주문에 속성과 관련 쿼리의 사용자 정보를 매핑하려면-> <연관 속성 = "user"javatype = "com.mybatis.entity.user"> <!-id : 관련 쿼리 사용자 열의 고유 식별자 : 사용자 정보 속성을 고르게 식별하는 열 : 사용자에게 맵핑 된 속성을 지정합니다. " <결과 열 = "사용자 이름"속성 = "사용자 이름"/> <결과 열 = "섹스"속성 = "섹스"/> <결과 열 = "주소"속성 = "주소"/> </협회> </resultmap> </span>
2. 명령문 정의, 코드는 다음과 같습니다.
<span style = "font-family : comic sans ms; font-size : 18px;"> <!-쿼리 주문, 쿼리 주문, 쿼리 사용자 정보를 사용하여 Qually Query Information을 사용하여 구현-> <select id = "findordersuseResultMap"resultmap = "select t1.*, t2.username, t2 t2, t2, t2, t2, t2, t2, t2. t1.user_id = t2.id </select> </span>
3. OrderCustommapper.java 인터페이스에 다음 방법을 추가하십시오.
<span style = "font-family : comic sans ms; font-size : 18px;">/ ** 쿼리 순서 연관 쿼리 사용자 정보, reslutmap을 사용하여*/ public list <orders> findordersuseResultMap (); </span>
4. resulttype 및 resultmap 구현의 Junit 테스트, 코드는 다음과 같습니다.
<span style = "font-family : comic sans ms; font-size : 18px;"> package com.mybatis.test; import java.io.inputstream; Java.util.list 가져 오기; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlsessionfactory; import org.apache.ibatis.session.sqlsessionfactorybuilder; 가져 오기 org.junit.fore; import org.junit.test; com.mybatis.entity.orders import; import com.mybatis.entity.orderscustom; import com.mybatis.mapper.orderscustommapper; 공개 클래스 ORDERSCUSTOMPAPPERTEST {private sqlsessionFactory sqlsessionFactory; //이 메소드는 public void setup ()을 exception {string resource = "sqlmapconfig.xml"; inputStream inputStream = resources.getResourCeasStream (resource); // sqlsessionfcatory sqlsessionfactory = new sqlsessionfactoryBuilder (). build (inputStream); } // 순서 쿼리, 쿼리 사용자 정보를 연결하고 resultType를 사용하여 테스트 @Test void testFindorsSuser () {sqlsession sqlsession = sqlsessionFactory.Opensession (); // 프록시 객체 작성 ORDERSCUSTOMPAPPER OC = SQLSESSION.GETMAPPER (OrdersCustOmpper.class); // CALL MAPPER 메소드 목록 <RESTERSCUSTOM> LIST = OC.FindorDERSUSER (); System.out.println (목록); sqlsession.close (); } // 순서 쿼리, 쿼리 사용자 정보를 연관시키고 resultMap @Test public void testFindorsSuserResultMap () {sqlsession sqlsession = sqlsessionActory.Opensession (); // 프록시 객체 작성 ORDERSCUSTOMPAPPER OC = SQLSESSION.GETMAPPER (OrdersCustOmpper.class); // CALL MAPPER 메소드 목록 <SERDERS> LIST = OC.FINDORDERSUSERSULTMAP (); System.out.println (목록); sqlsession.close (); }} </span>5. resulttype 및 resultmap은 일대일 쿼리 요약을 구현합니다
일대일 쿼리 구현 :
A.ResultType : resultType를 사용하여 구현하는 것은 비교적 간단합니다. 쿼리 열 이름이 pojo에 포함되지 않은 경우 매핑을 완료하려면 열 이름의 해당 속성을 추가해야합니다.
비. 쿼리 결과에 대한 특별한 요구 사항이없는 경우 resulttype를 사용하는 것이 좋습니다.
C.ResultMap : 결과 맵은 별도로 정의되어야하며 이는 약간 번거 롭습니다. 쿼리 결과에 대한 특별한 요구 사항이있는 경우 resultMap을 사용하면 관련 쿼리 매핑 pojo의 속성을 완성 할 수 있습니다.
D.ResultMap은 게으른 하중을 구현할 수 있으며 결과 유형은 게으른 하중을 구현할 수 없습니다.
3. 일대일 쿼리
3.1 요구 사항 : 쿼리 주문 (관련 사용자) 및 주문 세부 사항;
3.2 Orders.java 클래스의 목록 <orderDetail> orderDetails 속성을 추가하십시오 (위의 엔티티가 추가되었습니다). 마지막으로, 주문 정보는 주문에 매핑되며 주문에 해당하는 주문 세부 사항은 OrderDetails 속성에 주문됩니다.
3.3 Orderscustommapper.xml에 다음을 추가하십시오
<span style = "font-family : comic sans ms; font-size : 18px;"> <!-쿼리 순서 연관 쿼리 사용자 및 주문 세부 사항-> <select id = "findOrderSandOrderDetailResultMap"resultMap = "OrdersandOrderDetailDetailResultMap"> select t1.*, t2.USERNAME, t2.Sex, t2. addetdress, t2. addetdress, t2. t3.items_id, t3.items_num, t3. orders_id에서 t1, t_user t2, orderdetail t3에서 t1.user_id = t2.id 및 t3.orders_id = t1.id </select> </span
resultmap의 정의는 OrdersCustOmcapper.xml에도 추가됩니다
<span style = "font-family : comic sans ms; font-size : 18px;"> <!-주문 쿼리 (관련 사용자) 및 주문 세부 사항을위한 결과 맵-> <resultmap type = "com.mybatis.entity.orders"id = "orderSandordordordordderDetailResultMap"extends = "<! an wortusErresultMap"> <! 상속을 확장하고 주문 정보 및 사용자 정보의 매핑을 구성하지 마십시오-> <!-관련 주문 세부 정보 One Order Association Query에 여러 주문 세부 사항이 있습니다. 컬렉션 매핑 컬렉션을 사용해야합니다. MAP 연관 속성에 쿼리 된 다중 레코드는 유형의 수집 속성에 쿼리 된 다중 레코드 : 맵핑 된 컬렉션 속성에서 pojo 유형을 지정합니다.-> <Collection Property = "OrderDetails"oftype = "com.myBatis.entity.Arder.ArderDetail"> <! id : 고유 한 Identification 속성 : Com.MyBatiation의 고유 한 식별자-- <id column = "orderdetail_id"property = "id"/> <result column = "items_id"property = "inciptid"/> <result column = "items_num"property = "itemsnum"/> <result column = "orders_id"property = "ordersid"/</collection> </resultmap> </span>
3.4 OrderCustomEmapper.java 인터페이스 클래스에 메소드를 추가하면 코드는 다음과 같습니다.
<span style = "font-family : comic sans ms; font-size : 18px;">/ ** query 주문 (관련 사용자) 및 주문 세부 사항*/ public list <stentDetail> findOrdersandOrderDetailResultMap (); </span>
3.5 주니트 테스트 클래스에 테스트 방법을 추가하면 코드는 다음과 같습니다.
<span style = "font-family : comic sans ms; font-size : 18px;"> // 주문 쿼리 테스트 (관련 사용자) 및 주문 세부 사항 @test public void testfindorsandorderDetailResultMap () {sqlsession sqlsession = sqlsessionactory.opensession (); // 프록시 객체 작성 ORDERSCUSTOMPAPPER OC = SQLSESSION.GETMAPPER (OrdersCustOmpper.class); // CALL MAPPER 메소드 목록 <TERTDETAIL> list = OC.FindOrdersAndOrdOrdOrdOrdEdEtailResultMap (); System.out.println (목록); sqlsession.close (); } </span>3.6 요약
MyBatis는 ResultMap의 컬렉션을 사용하여 관련 쿼리의 여러 레코드를 목록 수집 속성에 매핑합니다. resulttype를 사용한 구현 : 주문 세부 사항을 주문한 순서 대표로지도 세부 사항을 직접 처리해야하며, 이중 루프 트래버스를 사용하고, 중복 레코드를 제거하고, 주문 세부 사항을 주문 대표로 배치하십시오.
4. 많은 쿼리
4.1 요구 사항 : 사용자와 사용자가 구매 한 제품 정보 쿼리
4.2 아이디어 매핑
사용자 정보를 사용자에 맵핑하고 OrdersList를 맵핑하려면 사용자 클래스에서 주문 목록 속성 목록을 추가합니다. 주문 세부 사항 목록 속성 목록 <StredDetail> OrderDetials를 주문하여 주문 세부 사항을 OrderDetials에 매핑합니다. 항목 속성을 OrderDetail에 추가하여 항목에 대한 주문 세부 사항에 해당하는 항목을 매핑하십시오.
4.3 OrdersCustOmcapper.xml 다음 코드를 추가합니다.
<span style = "font-family : comic sans ms; font-size : 18px;"> <!-사용자가 구매 한 제품 정보를 쿼리하기위한 결과 맵-> <resultmap type = "com.mybatis.entity.user"id = "userAnditemsresultMap"> <!-user information = "user_id"id "id"id "id"id. 속성 = "username"/> <result column = "sex"속성 = "섹스"/> <result column = "address"property "property ="address "/> <!-주문 정보 사용자는 수집 매핑을 사용하여 여러 주문에 해당합니다-> <collection repudity ="ordersList "oftype ="com.mybatis.entity.orders "<id"속성 = "user <user _" "user inderiD" "id induct". <결과 열 = "번호"속성 = "번호"/> <결과 열 = "CreateTime"속성 = "CreateTime"/> <result column = "note"propertion = "note"note "note"/> <result column = "note"/> <result column = "note"속성 = "note"/> <!-주문 세부 사항은 여러 세부 사항을 포함합니다-> <collection propert = "orderdetails"in indetails "> 열 = "orderdetail_id"property = "id"/> <result column = "items_id"property = "inciptid"/> <result column = "items_num"property = "itemsnum"/> <result column = "orders_id"property = "orderSid"/> <result column = "items_name"propert = "itemsname"/>> 열 = "항목"javatype = "com.mybatis.entity.items"> <id column = "items_id"property = "id"/> <결과 열 = "items_name"property = "itemsname"/> <result column = "items_name"propertion = "itemsname"/> <recent_detail = "setall ="setall = "setall" "recult _ anick"/ancothern " </collection> </collection> </resultmap> <! t3.orders_id, t4.itemsname items_name, t4.detail items_detail, t4.price items_price t1, t_user t2, orderdetail t3, items t4 여기서 t1.user_id = t2.id 및 t3.orders_id = t1.id 및 t3.items = t4.id> </span> </span>
4.4 OrderCustommapper.java에 다음 방법을 추가하십시오.
<span style = "font-family : comic sans ms; font-size : 18px;"> / ** 쿼리 사용자와 사용자가 구매 한 제품 정보* / public list <eruseranditemsresultmap (); </span>
4.5 주니트 테스트에 테스트 방법을 추가하면 코드는 다음과 같습니다.
<span style = "font-family : comic sans ms; font-size : 18px;"> // 사용자와 사용자가 구매 한 제품의 정보를 쿼리 @Test public void testFindUserAndItemSresultMap () {sqlsession sqlsession = sqlsectionsortory.opensession (); // 프록시 객체 작성 ORDERSCUSTOMPAPPER OC = SQLSESSION.GETMAPPER (OrdersCustOmpper.Class); // CALL MAPPER 메소드 목록 <user> list = oc.finduserAndItemsResultMap (); System.out.println (목록); sqlsession.close (); } </span> 4.6 결과 맵 요약
결과 유형 :
함수 : SQL 열 이름 Pojo 속성 이름 일관성에 따라 쿼리 결과를 pojo에 매핑합니다.
경우 : 사용자가 제품 세부 정보를 구매하고 페이지의 모든 관련 쿼리 정보를 표시 할 때와 같은 자세한 레코드의 일반적인 표시는 결과 유형을 사용하여 각 레코드를 POJO로 매핑하고 프론트 엔드 페이지의 목록 (POJO)을 가로 질러 갈 수 있습니다.
결과 맵 :
사용 : 일대일 및 일대일 고급 매핑을 완료하기위한 협회 및 컬렉션 (결과에 대한 특별한 매핑 요구 사항이 있습니다).
협회:
기능 : 관련 쿼리 정보를 POJO 객체에 매핑하십시오.
경우 : 관련 정보를 쿼리하기 위해 연관성을 사용하여 관련 주문 정보를 사용자 객체의 POJO 속성에 매핑 할 수 있습니다. 주문 및 관련 사용자 정보 쿼리.
resulttype를 사용하면 쿼리 결과를 pojo 객체의 pojo 속성에 매핑 할 수 없습니다. 결과 세트 쿼리를 가로 지르는 요구에 따라 resulttype 또는 resultmap을 사용할지 여부를 선택하십시오.
수집:
기능 : 관련 쿼리 정보를 목록 수집에 매핑하십시오.
경우 : 트래버스 연관 정보 쿼리 쿼리를 용이하게하려면 컬렉션을 사용하여 협회 정보를 목록 수집에 매핑 할 수 있습니다. 예를 들어, 사용자 권한 범위 모듈과 모듈 아래의 메뉴 쿼리, 모듈 목록을 맵핑하여 모듈 객체의 메뉴 목록 속성을 맵핑 할 수 있습니다. 이것의 목적은 쿼리 결과 세트를 쿼리하는 트래버스 쿼리를 용이하게하는 것입니다.
resulttype를 사용하는 경우 쿼리 결과를 목록 컬렉션에 매핑 할 수 없습니다.
위는 편집자가 소개 한 Mybatis의 고급 매핑입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!