好记性不如烂笔头,好久不写mapper文件,都不会写了,还要现查,所以还是记下来的好。
嵌套结果:2表关联,在sql中,可能是2条或多条记录,然后mybatis自己组装,返回结果集可能只有1条。
嵌套结果优点,应用层组装,只查一次,而非嵌套多次查询。
继承的话,如果用lombok的@Data话,记得用上@ToString(callSuper = true),要不然在集合类中,toString()可能出问题,默认的toString()方法只有子类的属性,没有父类属性
domain
import lombok.Data;
import lombok.ToString;
@Data
@ToString(callSuper = true)
public class InnerTxDo extends InnerTx implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String bizType;
...
private List innerItemList;
}
@Data
public class InnerItem implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private Long innerTxId;
...
private BigDecimal amount;
}
@Data
public class InnerTxParam implements Serializable {
private static final long serialVersionUID = 1L;
private String startTime;
private String endTime;
private List fromAddressList;
}
mapper.java
public interface InnerTxMapper extends BaseMapper{ List queryInnerTxList(InnerTxParam innerTxParam); }
mapper.xml
SELECT t.id,t.biz_type,t.amount,ii.id inner_item_id, ii.pay_type,ii.amount inner_item_amount FROM t_inner_tx t Left JOIN t_inner_item ii on t.id=ii.inner_tx_id WHERe t.chain = #{chain} and t.create_time = ]]> #{startTime} and t.create_time #{endTime} AND t.from_address IN #{item}



