Mybatis对象中含有list对象
mybatis是一个非常好用且灵活的持久层框架,但也正是因为太过灵活,导致有时候参数很难整理。我把我在项目中遇到的一个特殊情况列出来,希望下次再碰到时,也有个印象。
实体类如下:
- public class BatchManagerViewVo implements Serializable{
- /**
- * @Description: serialVersionUID : TODO
- */
- private static final long serialVersionUID = 1L;
- private List<ResourcesItemDto> resourceItem;
- private List<PriceInfoDto> priceInfo;
- /**
- * 主键(PM200600001)
- */
- @Id
- @Column(name = "ID")
- private String id;
- public List<ResourcesItemDto> getResourceItem() {
- return resourceItem;
- }
- public void setResourceItem(List<ResourcesItemDto> resourceItem) {
- this.resourceItem = resourceItem;
- }
- public List<PriceInfoDto> getPriceInfo() {
- return priceInfo;
- }
- public void setPriceInfo(List<PriceInfoDto> priceInfo) {
- this.priceInfo = priceInfo;
- }
- /**
- * 场次名称
- */
- @Column(name = "BATCH_NAME")
- private String batchName;
- /**
- * 会员名称
- */
- @Column(name = "MEMBER_NAME")
- private String memberName;
- /**
- * 发起竞价的会员代码
- */
- @Column(name = "MEMBER_CODE")
- private String memberCode;
- /**
- * 委托状态:0-已生成,1-已发布,2.竞价中 3-已撤消,4--已作废,5-已完成
- */
- @Column(name = "BATCH_STATE")
- private String batchState;
- /**
- * 委托申请时间
- */
- @Column(name = "BATCH_DATE")
- private Date batchDate;
- /**
- * 结束时间
- */
- @Column(name = "END_TIME")
- private Date endTime;
- /**
- * 开始时间
- */
- @Column(name = "START_TIME")
- private Date startTime;
- /**
- * 履约保证金是否已经支付 1 - 已经支付 0 - 未支付(只有此状态为1才允许开始拍卖)
- */
- @Column(name = "BOND_PAYMENT_STATUS")
- private String bondPaymentStatus;
- /**
- * 结算方式:1-场外结算(默认) 2- 场内结算
- */
- @Column(name = "SETTLEMENT_MODE")
- private String settlementMode;
- /**
- * 作废时间
- */
- @Column(name = "INVALID_DATE")
- private Date invalidDate;
- /**
- * 审核操作员
- */
- @Column(name = "AUDIT_OPERATOR")
- private String auditOperator;
- /**
- * 终止操作员
- */
- @Column(name = "STOP_OPERATOR")
- private String stopOperator;
- /**
- * 作废操作员
- */
- @Column(name = "INVALID_OPERATOR")
- private String invalidOperator;
- /**
- * 申请操作员
- */
- @Column(name = "APPLY_OPERATOR")
- private String applyOperator;
- /**
- * 公告日
- */
- @Column(name = "ANNOUNCEMENT_DAY")
- private Date announcementDay;
- /**
- * 竞价日
- */
- @Column(name = "BID_DAY")
- private Date bidDay;
- /**
- * 买方保证金
- */
- @Column(name = "BUYER_DEPOSIT")
- private BigDecimal buyerDeposit;
- /**
- * 卖家保证金
- */
- @Column(name = "SELLER_BOND")
- private BigDecimal sellerBond;
- /**
- * 强制终止理由
- */
- @Column(name = "FORCED_TERMINATION_REASON")
- private String forcedTerminationReason;
- /**
- * 终止委托审核理由(待定)
- */
- @Column(name = "AUDIT_STOP_REASON")
- private String auditStopReason;
- /**
- * 终止委托审核时间(待定)
- */
- @Column(name = "AUDIT_STOP_DATE")
- private Date auditStopDate;
- /**
- * 终止委托申请理由(待定)
- */
- @Column(name = "APPLY_STOP_REASON")
- private String applyStopReason;
- /**
- * 终止委托申请时间(待定)
- */
- @Column(name = "APPLY_STOP_DATE")
- private Date applyStopDate;
- /**
- * 拒绝审核委托理由(待定)
- */
- @Column(name = "REFUSE_AUDIT_REASON")
- private String refuseAuditReason;
- /**
- * 委托审核时间(待定)
- */
- @Column(name = "AUDIT_TIME")
- private Date auditTime;
- /**
- * 定向竞价0否1是1
- */
- @Column(name = "IS_DIRECTIONAL_BID")
- private String isDirectionalBid;
- /**
- * 定向的原因,当场次定向时必须输入
- */
- @Column(name = "DIRECTIONAL_REASON")
- private String directionalReason;
- /**
- * 是否需要发送短信0不发送1发送
- */
- @Column(name = "IS_SEND_MESSAGE")
- private String isSendMessage;
- /**
- * 是否显示中标价格
- */
- @Column(name = "IS_SHOW_DEAL_PRICE")
- private String isShowDealPrice;
- /**
- * 是否显示定价
- */
- @Column(name = "IS_SHOW_ORDER_PRICE")
- private String isShowOrderPrice;
- /**
- * 是否显示中标会员
- */
- @Column(name = "IS_SHOW_DEAL_MEMBER")
- private String isShowDealMember;
- /**
- * 最少响应人数
- */
- @Column(name = "MINIMUM_RESPONSE")
- private String minimumResponse;
- /**
- * 是否显示成交结果
- */
- @Column(name = "ISSHOWDEALRESULT")
- private String isshowdealresult;
- /**
- * 竞价模式:1-公开增价,2自由报价,3-荷式竞价
- */
- @Column(name = "BIDDING_TYPE")
- private String biddingType;
- /**
- * 报盘方式:1-单价,2-总价
- */
- @Column(name = "OFFER_TYPE")
- private String offerType;
- /**
- * 是否显示起拍价 1显示(默认) 2不显示
- */
- @Column(name = "IS_SHOW_STARTING_PIRCE")
- private String isShowStartingPirce;
- /**
- * 域名
- */
- @Column(name = "DOAMIN")
- private String doamin;
- /**
- * 协议
- */
- @Column(name = "EDITMENT")
- private String editment;
- }
这里的实体类中,包含了2个List对象,所以在写xml文件的时候多少对我这种菜鸟有点难度。
- <select id="findSellerBatchInfo" parameterType="com.ouyeel.chem.bdt.search.BatchManagerSerachModel" resultMap="batchInfoMap">
- select
- batch.ID,
- batch.BATCH_NAME,
- batch.BATCH_STATE batch_state,
- batch.START_TIME batch_start_time,
- batch.END_TIME batch_end_time,
- batch.IS_DIRECTIONAL_BID batch_is_direc,
- batch.BUYER_DEPOSIT batch_buyer_deposit,
- batch.BIDDING_TYPE batch_bidding_type,
- batch.OFFER_TYPE batch_offer_type,
- batch.BATCH_DATE batch_date,
- batch.ANNOUNCEMENT_DAY batch_announ,
- batch.BID_DAY batch_bid_day,
- price.id price_id,
- price.STARTING_PIRCE price_starting_price,
- price.BIDDING_GRADIENT price_bidding_gradient,
- price.TAX_RATE price_tax_rate,
- price.TAX_FREE_PRICE price_tax_free_price,
- price.RESERVE_PRICE price_reserve_price,
- item.PRODUCT_NAME item_product_name,
- item.PRODUCT_NO item_product_no,
- item.PACKAGES item_packages,
- item.ORIGIN_PLACE item_origin_place,
- item.WAREHOUSE_NAME item_warehouse,
- item.PIECE_UNIT item_piece_unit,
- item.TRADING_WEIGHT item_trading_weight
- from bdt_batch batch
- left join bdt_resources_item item on item.batch_id = batch.id
- left join bdt_price_info price on price.batch_id = batch.id and item.id = price.item_id
- where batch.member_code = #{memberCode,jdbcType=VARCHAR}<!-- and batch.id = 'P170508005' -->
- <if test="id != null and id != '' ">
- and batch.id like '%${id}%'
- </if>
- <if test="startTime != null and startTime != '' ">
- and batch.batch_date >= #{startTime,jdbcType=TIMESTAMP}
- </if>
- <if test="endTime != null and endTime != '' ">
- and batch.batch_date <= #{endTime,jdbcType=TIMESTAMP}
- </if>
- <if test="batchState != null and batchState != '' ">
- and batch.batch_state = #{batchState,jdbcType=VARCHAR}
- </if>
- <if test="sidx != null and sidx != '' ">
- order by batch.${sidx} ${sord}
- </if>
- <if test="sidx == null or sidx ==''">
- order by batch.id desc
- </if>
- </select>
- <resultMap type="com.ouyeel.chem.bdt.entity.vo.BatchManagerViewVo" id="batchInfoMap">
- <!-- association字面意思关联,这里只专门做一对一关联; property表示是com.mybatis.bean.StudentTemp中的属性名称;
- javaType表示该属性是什么类型对象 -->
- <!-- property 表示com.mybatis.bean.Class中的属性; column 表示表中的列名 -->
- <id property="id" column="id"/>
- <result property="batchName" column="batch_name"/>
- <result property="startTime" column="batch_start_time"/>
- <result property="endTime" column="batch_end_time"/>
- <result property="isDirectionalBid" column="batch_is_direc"/>
- <result property="batchState" column="batch_state"/>
- <result property="buyerDeposit" column="batch_buyer_deposit"/>
- <result property="biddingType" column="batch_bidding_type"/>
- <result property="offerType" column="batch_offer_type"/>
- <result property="batchDate" column="batch_date"/>
- <result property="announcementDay" column="batch_announ"/>
- <result property="bidDay" column="batch_bid_day"/>
- <!-- property表示集合类型属性名称,ofType表示集合中的对象是什么类型 -->
- <collection property="priceInfo" ofType="com.ouyeel.chem.bdt.entity.PriceInfoDto">
- <id property="id" column="price_id"/>
- <result property="startingPirce" column="price_starting_price"/>
- <result property="biddingGradient" column="price_bidding_gradient"/>
- <result property="taxRate" column="price_tax_rate"/>
- <result property="taxFreePrice" column="price_tax_free_price"/>
- <result property="reservePrice" column="price_reserve_price"/>
- </collection>
- <!-- property表示集合类型属性名称,ofType表示集合中的对象是什么类型 -->
- <collection property="resourceItem" ofType="com.ouyeel.chem.bdt.entity.ResourcesItemDto">
- <result property="productName" column="item_product_name"/>
- <result property="productNo" column="item_product_no"/>
- <result property="packages" column="item_packages"/>
- <result property="originPlace" column="item_origin_place"/>
- <result property="warehouseName" column="item_warehouse"/>
- <result property="pieceUnit" column="item_piece_unit"/>
- <result property="tradingWeight" column="item_trading_weight"/>
- </collection>
- </resultMap>
Mybatis对象中含有list对象相关推荐
- 如何将一个对象中的List对象添加为子集,且父结构不存在重复数据
如何将一个对象中的List对象添加为子集,且父结构不存在重复数据 有这样一个需求,把一个客户名下的联系人构建成下拉树结构.如 : A公司 ----联系人:张三 ----联系人:李四 B公司 ----联 ...
- java的BeanUtils.copyProperties会把为数据源对象中数字包装对象为null的值改成0赋值给操作对象的属性
如果使用java自带BeanUtils.copyProperties,它会把为数据源对象的数字包装对象为null的值改成0赋值给操作对象的属性!!!
- 【Java代码】Lamda表达式将List对象中的Map对象的key全部转化为大写或者小写【去除外层循环:可用于Map对象中的key全部转化为大写或者小写】
why 事情的缘由是这样的,我们有两个平台,一个使用Oracle,另一个使用GreenPlum,查询结果封装成Map对象,如果使用相同的查询语句,Oracle的key是大写的,GreenPlum的ke ...
- mybatis返回值多个对象
SpringBoot+mysql+Mybatis返回值对象中含有对象集合 1.对象personalHistoryInfo public class PersonalHistoryInfo {/** ...
- vue 往对象中添加键值对_【Vue】Vue学习之混入
今天学习了Vue中的"混入"知识点,写篇文章用自己的语言来向自己解释它,如有不足还望指点. 混入(mixins): 混入提供了一种非常灵活的方式,来分发Vue组件中的可复用功能 - ...
- JavaScript中本地对象、内置对象和宿主对象
http://www.jianshu.com/p/a52e6e183427 http://blog.csdn.net/weiyastory/article/details/52837466 http: ...
- PHP 中的类, 对象之间的关系
最近,看了一篇介绍关于PHP中类与对象关系的文章,感觉对类和对象的理解又加深了一层,这里总结一下: (1):创建一个新的类 class Test{public $class_name = " ...
- JavaScript如何声明对象、函数以及对象中的函数(即方法)
目录 声明对象的2种最常见方法 声明函数的2种最常见方法 在对象中声明函数 声明对象的2种最常见方法 1) var Zhihuijun = {name:'彭志辉',age:28,upName:'稚晖君 ...
- python里面的类和对象_Python中类和对象在内存中是如何保存?
类以及类中的方法在内存中只有一份,而根据类创建的每一个对象都在内存中需要存一份,大致如下图: 如上图所示,根据类创建对象时,对象中除了封装 name 和 age 的值之外,还会保存一个类对象指针,该值 ...
- 数据库-ADONET-在数据集DataSet中使用关系对象DataRelation处理关系
处理关系数据 数据库中,表很少是独立结构的,大部分数据库都包含相互关联的表. 在构建应用程序时,会遇到--显示或者通过程序设计访问数据库中相关表的数据的情况. 用户会希望,能通过在不同的表之间定位,来 ...
最新文章
- 2021高校毕业生薪酬Top100出炉!清华指数TOP,薪酬却排名第二
- ​网页图表Highcharts实践教程标之添加题副标题版权信息
- linux shell 产生随机数
- windows下mysql安装配置启动
- 日常打卡:平淡无奇的一天
- ruby mysql 占位符_ruby操作常用数据库
- 身为开发人员,这些数据库合知识不掌握不合适!
- [原创]FOCUS处理系统流程之:大文本文件极速合并(sps文件合并)
- ehcache 实现缓存共享
- php日志,记录日志
- php中面向对象静态调用,php面向对象中static静态属性和静态方法的调用_PHP
- [转]通过秘钥实现scp不输入密码传送文件
- CS231n Assiganment#1解析(一)——KNN
- java 拉姆达表达式_Java8中foreach与拉姆达表达式的组合使用
- 锂电池电量百分比计算_锂电池的电量、电压与放电时间的计算
- Android 显示软键盘输入法和强制隐藏软键盘输入法
- Excel转PDF如何解决显示不全的问题?
- DDoS攻击流量检测方法
- 计算机三级网络技术最全知识点总结【2】
- Java 程序基本结构