Mybatis常见错误
来源:互联网 发布:啊哈c语言 pdf微盘 编辑:程序博客网 时间:2024/06/05 19:24
一对多映射配置
<resultMap type="com.pingan.toa.asset.model.response.creditcard.CreditBillRespModel" id="BillAndBillDetailModel"> <id column="id" property="id" /> <result column="cardId" property="cardId" /> <result column="clientNo" property="clientNo" /> <collection property="billDetails" ofType="com.pingan.toa.asset.model.response.creditcard.CreditDetailRespModel" > <id column="detailId" property="detailId" /> <result column="billId" property="billId" /> <result column="clientNoDetail" property="clientNoDetail" /> </collection> </resultMap>
/** * 邮箱爬取数据,bill * */public class CreditBillRespModel {private String id;private String cardId;private String clientNo;/**账单详情列表*/private List<CreditDetailRespModel> billDetails;}
public class CreditDetailRespModel {private String detailId;private String clientNoDetail;private String billId;}
SQL:
<!-- 查询信用卡账单2 --> <select id="selectCreditCardBillModelList" resultMap="BillAndBillDetailModel" parameterType="com.pingan.toa.asset.model.response.creditcard.AssetBankBillQuery">select<include refid="billAndDetailColumn" />from ASSET_BANK_BILL bill left join ASSET_BANK_CARD card on bill.card_id=card.idleft join ASSET_BANK_CREDIT_DETAIL detail on bill.id=detail.bill_id<where><if test="cardId != null">bill.CARD_ID = #{cardId}</if><if test="clientNo != null">and bill.CLIENT_NO = #{clientNo}</if><if test="cardNo != null">AND (card.CLIENT_NO = bill.CLIENT_NOAND card.medium_no = bill.card_noAND ((SUBSTRING (bill.CARD_NO FROM 1 FOR 4) = SUBSTRING (#{ cardNo } FROM 1 FOR 4)AND CHAR_LENGTH (bill.CARD_NO) = CHAR_LENGTH (#{ cardNo })AND SUBSTRING (bill.CARD_NO FROM '....$') = SUBSTRING (#{ cardNo } FROM '....$'))OR card.COMPLETE_MEDIUM_NO = #{ cardNo }))</if><if test="billMonth != null">and bill.BILL_MONTH = #{billMonth}</if><foreach collection="channelSources" item="item" index="index" separator=", " open="and bill.CHANNEL_SOURCE in ( " close=" )">#{item}</foreach>order by bill.BILL_MONTH desc limit 12</where> </select>
<sql id="billAndDetailColumn"> bill. ID AS id,bill.CARD_ID AS cardId,bill.CLIENT_NO AS clientNo,detail. ID AS detailId,detail.BILL_ID AS billId,detail.CLIENT_NO AS clientNoDetail, </sql>
注意的地方就是
①配置一对多关系时,这个column指的是你查询结果的列名或别名
②一方和多方很可能字段重名,这时候建议列起别名(用AS),这样配置配置的column和property的值就可以一样了
③多的一方的 <id column="detailId" property="detailId" />中假如写成column="id" ,那么mybatis就是去取列为这个的值,这个值恰好就是bill的id,你又把它作为了detail的id,那么查出来的detail只会有一条。避免这个现象和字段混乱的的最好方式就是给查询出来的列起别名,然后和java类中的属性一一对应。
0 0
- [ Mybatis ] Mybatis使用常见错误
- Mybatis常见错误
- mybatis常见错误
- Mybatis常见错误
- 【MyBatis】常见错误记录
- Mybatis常见错误
- mybatis入门常见错误
- springmvc+mybatis常见错误
- Mybatis+Spring常见错误总结
- Mybatis常见配置错误总结
- mybatis配置的常见错误
- mybatis学习笔记--常见的错误
- mybatis他大爷的常见错误
- mybatis项目中常见的小错误
- Spring MVC+Mybatis常见错误及解决
- mybatis常见错误(文件配置)
- mybatis学习笔记--常见的错误
- Mybatis使用常见错误及原因
- HDU 3001 Traveling(状压DP)
- 内部类及匿名内部类的详细描述
- fwrite
- 关于烧录工具的总结
- iOS开发之基础视图—— UIStepper
- Mybatis常见错误
- C语言编程---socket基础
- ios通过字符串获取类名
- mybatis配置
- dup与赋值语句用于文件描述符的区别
- stone
- message[时间标记]
- 拓扑排序
- 第十二周第三项目——类运算的实现(运算符重载)