sql查詢結(jié)果與表的entity不一致時(shí)肥荔,用xml的ResultMap來自定義字段睡雇,便可輕松解決寿酌! 統(tǒng)計(jì)自段也可以在sql語句中用 as 將自定義信息轉(zhuǎn)成一個(gè) result column,
配置在ResultMap婚苹,便可以直接裝入result Object模型岸更。
Mapper.xml
<resultMap id="BaseResultMap" type="com.cloud.model.User">
? ? ? ? <id column="id" property="id" jdbcType="INTEGER" />
........
? ? ? ? <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
? ? ? ? <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
? ? ? ? <result column="statistics_count" property="patientCount" jdbcType="INTEGER"/>
</resultMap>
<select id="getAccountListBytIdByPage" resultMap="BaseResultMap">
? ? ? ? select a.*, count(b.id) as statistics_count
? ? ? ? from account as a
? ? ? ? ? ? ? ? left JOIN sys_patient as b ON b.admin_account_id = a.id
? ? ? ? where a.t_id = #{id}
? ? ? ? ? and a.del_flg = 0
? ? ? ? group by a.id
? ? ? ? order by a.create_time desc
</select>
Mapper.java
Page<User> getAccountListBytIdByPage(Integer id, Page<User> ipage)
ServiceImp.java
public Page<User> getAccountListBytIdByPage(Integer id, Page<User> ipage) {
? ? ? ? //獲取個(gè)人管理員的列表
? ? ? ? Page<User> userList = accountMapper.getAccountListBytIdByPage(id, ipage);
? ? ? ? return userList;
? }
Controller.java
? ? ? // 獲取page信息
? ? ? ? Long page = Long.valueOf(pagedRequest.getPage());
? ? ? ? Long size = Long.valueOf(pagedRequest.getSize());
? ? ? ? Page<UserInfo> ipage = new Page<UserInfo>(page, size);
? ? ? Page<User> userList = service. getAccountListBytidByPage(id, ipage);