mybatis中resultMap标签中加⼊collection的⽤法及⼀对多查询limi。。。
⽇常开发中,数据之间可能是⼀对多的关系,那么查询的时候就需要⼀对多关联查询,这个时候就使⽤到了 <collection>标签。
<resultMap type="com.ity.PsomAsmbleStock" id="BaResultMap">
//resultMap中的元素是主表的数据
<id column="id" property="id"/>
<result column="other_no" property="otherNo"/>
//collection中property是PsomAsmbleStock中的⼀个list,也就是1:n中的n,list的类型是n
//ofType也就是n的实体类型
<collection property="listProduce"
ofType="com.ity.PsomAsmbleProduce">
重阳节英文
//下⾯的字段属性就是n的元素,注意查询n的时候的id需要重新命名
<id column="asmble_produce_id" property="id"/>
<result column="asmble_produce_asmble_id" property="asmbleId"/>
乖僻</collection>
</resultMap>招标书怎么写
通过上⾯的<collection>标签,mybatis就能够⾃动映射过去。
注意:当数据之间的关系变成1:n:n的时候,我们可以在<collection>中再嵌套⼀个<collection>,但是当嵌套的数量太多的时候,mybatis就不能全部映射过去,实践中检测到,mybatis只能够最多嵌套3层<collection>,当然在<resultMap>中放多少<collection>都是可以的。
还有⼀个问题记录⼀下:
⼀对多关联查询的时候limit的数量会跟随着⼀对多中的多进⾏展⽰,这样查询出来的数量就跟我们实际想要的出现出⼊。
以下是解决⽅法:
下⾯的sql中,psom_asmble_stock表是1,psom_asmble_produce 是n
SELECT psom_asmble_stock.* ,
psom_asmble_produce.id as asmble_produce_id,
诚信素材
psom_asmble_produce.number as asmble_produce_num,
from psom_asmble_stock
LEFT JOIN psom_asmble_produce ON psom_asmble_stock.id = psom_asmble_produce.asmble_id
//使⽤where条件+⼦查询筛选出主表的信息
生男孩秘籍
小意达的花儿where psom_asmble_stock.id in (lect id from (lect distinct id from (
lect psom_asmble_stock.id from psom_asmble_stock
LEFT JOIN psom_asmble_produce ON psom_asmble_stock.id = psom_asmble_produce.asmble_id
路由器复位
大世界游乐场) as table1
limit #{0}, #{10} ) as table2 )