关于如何处理Mybatis参数为对象中包含list情况

来源:互联网 发布:js tbody 动态添加行 编辑:程序博客网 时间:2024/05/16 10:37

1.实体类:

import java.math.BigDecimal;
import java.util.Date;


public class T_13_class_note_optionPo {
    private BigDecimal id;

    private BigDecimal checkItemId;

    private String noteTitle;

    private BigDecimal recordMin;

    private String recordType;

    private BigDecimal lessenScore;

    private BigDecimal timeCount;

    private String timeType;

    private String isAuditing;

    private String auditingType;

    private String selectStudent;

    private String selectType;

    private String isMemo;

    private String isUpload;

    private BigDecimal uploadCount;

private String creator;

    private Date createTime;

    private String modifyMan

    private Date modifyTime;

private List<dateTimeList> list;


    public BigDecimal getId() {
        return id;
    }


    public void setId(BigDecimal id) {
        this.id = id;
    }


    public BigDecimal getCheckItemId() {
        return checkItemId;
    }


    public void setCheckItemId(BigDecimal checkItemId) {
        this.checkItemId = checkItemId;
    }


    public String getNoteTitle() {
        return noteTitle;
    }


    public void setNoteTitle(String noteTitle) {
        this.noteTitle = noteTitle == null ? null : noteTitle.trim();
    }


    public BigDecimal getRecordMin() {
        return recordMin;
    }


    public void setRecordMin(BigDecimal recordMin) {
        this.recordMin = recordMin;
    }


    public String getRecordType() {
        return recordType;
    }


    public void setRecordType(String recordType) {
        this.recordType = recordType == null ? null : recordType.trim();
    }


    public BigDecimal getLessenScore() {
        return lessenScore;
    }


    public void setLessenScore(BigDecimal lessenScore) {
        this.lessenScore = lessenScore;
    }


    public BigDecimal getTimeCount() {
        return timeCount;
    }


    public void setTimeCount(BigDecimal timeCount) {
        this.timeCount = timeCount;
    }


    public String getTimeType() {
        return timeType;
    }


    public void setTimeType(String timeType) {
        this.timeType = timeType == null ? null : timeType.trim();
    }


    public String getIsAuditing() {
        return isAuditing;
    }


    public void setIsAuditing(String isAuditing) {
        this.isAuditing = isAuditing == null ? null : isAuditing.trim();
    }


    public String getAuditingType() {
        return auditingType;
    }


    public void setAuditingType(String auditingType) {
        this.auditingType = auditingType == null ? null : auditingType.trim();
    }


    public String getSelectStudent() {
        return selectStudent;
    }


    public void setSelectStudent(String selectStudent) {
        this.selectStudent = selectStudent == null ? null : selectStudent.trim();
    }


    public String getSelectType() {
        return selectType;
    }


    public void setSelectType(String selectType) {
        this.selectType = selectType == null ? null : selectType.trim();
    }


    public String getIsMemo() {
        return isMemo;
    }


    public void setIsMemo(String isMemo) {
        this.isMemo = isMemo == null ? null : isMemo.trim();
    }


    public String getIsUpload() {
        return isUpload;
    }


    public void setIsUpload(String isUpload) {
        this.isUpload = isUpload == null ? null : isUpload.trim();
    }


    public BigDecimal getUploadCount() {
        return uploadCount;
    }


    public void setUploadCount(BigDecimal uploadCount) {
        this.uploadCount = uploadCount;
    }


    public String getCreator() {
        return creator;
    }


    public void setCreator(String creator) {
        this.creator = creator == null ? null : creator.trim();
    }


    public Date getCreateTime() {
        return createTime;
    }


    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }


    public String getModifyMan() {
        return modifyMan;
    }


    public void setModifyMan(String modifyMan) {
        this.modifyMan = modifyMan == null ? null : modifyMan.trim();
    }


    public Date getModifyTime() {
        return modifyTime;
    }


    public void setModifyTime(Date modifyTime) {
        this.modifyTime = modifyTime;
    }
}

2.数据库操作:

import org.apache.ibatis.annotations.Param;

mapper接口层:

public List<Class_check_itemPo> queryClassCheckItemMarkList_note_month(@Param("as")Class_note_optionPo noteOptionPo);

xml:

<select id="queryClassCheckItemMarkList_note_week_month" resultType="Class_check_itemPo">
      select 
      v.id, 
      v.class_id, 
      nvl(v.top_mark,0)-sum(minus_mark) as sumMark
  from (
  <foreach collection="as.dateTimeList" item="item" index="index" separator="union all">
  select 
       a.id, 
       c.class_id, 
       d.week_no, 
       a.top_score, 
   decode(sign(b.min_record-nvl(d.noteCount,0)),1,(b.min_record-nvl(d.noteCount,0))*b.less,0) as minus_mark
from t_13_class_check_item a
left join t_13_class_note_option b on b.check_item_id=a.id
left join t_13_class_check_quota_class c on c.check_quota_id = a.check_quota_id
left join t_13_class_check_quota d on d.id = c.check_quota_id
left join(
select 
                 aa.check_note_option_id, aa.class_id, aa.week_no, count(aa.id) as noteCount
from t_class_check_note aa
<trim prefix="WHERE" prefixOverrides="AND |OR">
     to_char(aa.note_date,'yyyy-MM-dd') &gt;= #{item.startDate,jdbcType=DATE}
  and to_char(aa.note_date,'yyyy-MM-dd') &lt;= #{item.endDate,jdbcType=DATE}
</trim>
    group by aa.check_note_option_id, aa.class_id, aa.week_no
) d on d.p_id=b.id and d.class_code=c.class_code
<trim prefix="WHERE" prefixOverrides="AND |OR"> 
a.input_type='14' and b.is_auditing=0 and b.record_type='2'
<if test="class_id != null">and c.class_id=#{as.class_id}</if>
<if test="id != null">and a.id = #{as.id}</if>

</trim>
  </foreach>
  )v
group by v.id, v.class_id, v.top_mark
   </select>

标红色的位置为特别注意的地方

原创粉丝点击