Mybatis查询自定义集合类型属性配置

一个作物品种的DNA序列有不同的记录,建立如下数据类型:

public class Variety {
    private Long id;
    private String varietyName;
    private List<Snp> snpList;
}
public class Snp {
    private Long id;
    private String sequence;
    private String year;
}

dao层接口:

List<Variety> queryVarieties();

mapper文件的配置:

技巧:

1.列设置别名(标红)

2.设置<resultMap>以及<collection>的使用

<mapper namespace="com.hzau.dao.VarietyDao">
    
    <resultMap id="snp" type="Snp">
        <result property="id" column="snp_id" jdbcType="INTEGER"/>
        <result property="sequence" column="sequence" jdbcType="VARCHAR"/>
        <result property="year" column="year" jdbcType="VARCHAR"/>
    </resultMap>
    <resultMap id="variety" type="Variety">
        <result property="id" column="variety_id" jdbcType="INTEGER"/>
        <result property="varietyName" column="variety_name" jdbcType="VARCHAR"/>
        <collection property="snpList" resultMap="snp"/>
    </resultMap>
    
    <select id="queryVarieties" resultMap="variety">
        select v.id variety_id,v.variety_name,s.id snp_id,s.sequence,s.year
        from variety v,snp_variety sv,snp s
        where v.id=sv.variety_id and sv.snp_id=s.id;
    </select>

</mapper>

test测试:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring/spring-dao.xml"})
public class VarietyDaoTest {
    
    @Resource
    private VarietyDao varietyDao;
    
    @Test
    public void testQueryVarieties(){
        List<Variety> list=varietyDao.queryVarieties();
        for(Variety v:list){
            System.out.print(v.getId()+"@"+v.getVarietyName());
            List<Snp> snpList=v.getSnpList();
            for(Snp snp:snpList){
                System.out.print(snp.getId());
            }
            System.out.println();
        }
    }
}

小结:记录一下,下次就不用再查一遍错误配置了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值