MyBatis映射文件resultMap元素中使用多個(gè)association的方法
現(xiàn)在有一張訂單表t_stockorder,其擁有id、code、client_id、merchandise_id、merchandise_number、order_date、operator_id這些字段,其中client_id關(guān)聯(lián)t_client表中code字段,merchandise_id關(guān)聯(lián)t_merchandise表的code字段,operator_id關(guān)聯(lián)t_employee表的code字段。
現(xiàn)在要通過(guò)SQL語(yǔ)句將訂單表中t_stockorder的數(shù)據(jù)全部查詢出來(lái),SQL語(yǔ)句如下所示:
select so.id, so.code, c.name cname, m.name mname, so.merchandise_number, so.order_date, e.name ename from inventory.t_stockorder so inner join inventory.t_client c on c.code = so.client_id inner join inventory.t_merchandise m on m.code = so.merchandise_id inner join inventory.t_employee e on e.code = so.operator_id
現(xiàn)在要在mapper映射文件中添加動(dòng)態(tài)Sql語(yǔ)句,一般情況下映射文件中的resultMap元素中只可以有一個(gè)association,那如何添加多個(gè)association到resultMap中呢?正確代碼如下圖所示:
<resultMap type='com.lwz.entity.Stockorder'> <id property='id' column='id' /> <result property='code' column='code' /> <result property='merchandiseNumber' column='merchandise_number' /> <result property='orderDate' column='order_date' /> <association property='client' javaType='Client' resultMap='ClientResultMap'></association> <association property='merchandise' javaType='Merchandise' resultMap='MerchandiseResultMap'></association> <association property='employee' javaType='Employee' resultMap='EmployeeResultMap'></association> </resultMap> <resultMap type='com.lwz.entity.Client'> <id property='code' column='code' /> <result property='name' column='cname' /> </resultMap> <resultMap type='com.lwz.entity.Merchandise'> <id property='code' column='code' /> <result property='name' column='mname' /> </resultMap> <resultMap type='com.lwz.entity.Employee'> <id property='code' column='code' /> <result property='name' column='ename' /> </resultMap> <!--通過(guò)實(shí)體作為篩選條件查詢--> <select resultMap='StockorderMap'> select so.id, so.code, c.name cname, m.name mname, so.merchandise_number, so.order_date, e.name ename from inventory.t_stockorder so inner join inventory.t_client c on c.code = so.client_id inner join inventory.t_merchandise m on m.code = so.merchandise_id inner join inventory.t_employee e on e.code = so.operator_id <where> <if test='id != null'>and id = #{id} </if> <if test='code != null and code != ’’'>and so.code = #[code] </if> <if test='client != null'>and client_id = #{client.code} </if> <if test='merchandise != null'>and merchandise_id = #{merchandise.code} </if> <if test='merchandiseNumber != null'>and merchandise_number = #{merchandiseNumber} </if> <if test='orderDate != null'>and order_date = #{orderDate} </if> <if test='employee != null'>and operator_id = #{employee.code} </if> </where> </select>
resultMap中association的各個(gè)屬性的含義:
property:映射實(shí)體類的字段或?qū)傩浴? colum:數(shù)據(jù)庫(kù)的列名或者列標(biāo)簽別名。 javaTyp:完整java類名或別名。 jdbcType支持的JDBC類型列表列出的JDBC類型。這個(gè)屬性只在insert,update或delete的時(shí)候針對(duì)允許空的列有用。 resultMap: 一個(gè)可以映射聯(lián)合嵌套結(jié)果集到一個(gè)適合的對(duì)象視圖上的ResultMap。這是一個(gè)替代的方式去調(diào)用另一個(gè)select語(yǔ)句。到此這篇關(guān)于MyBatis映射文件resultMap元素中使用多個(gè)association的方法的文章就介紹到這了,更多相關(guān)MyBatis 多個(gè)association內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 淺談如何將Oracle導(dǎo)出到XML文件2. 使用SQL語(yǔ)句快速獲取SQL Server數(shù)據(jù)字典3. 探討SQL Server 2005.NET CLR編程4. 關(guān)于Oracle中sqlldr的用法大全5. Oracle數(shù)據(jù)庫(kù)中的字符處理技巧總結(jié)6. Mybatis 將table表名作為參數(shù)傳入操作7. Microsoft SQL Server 查詢處理器的內(nèi)部機(jī)制與結(jié)構(gòu)(1)8. SQL Server中的數(shù)據(jù)類型詳解9. MySQL InnoDB ReplicaSet(副本集)簡(jiǎn)單介紹10. Mybatis Limit實(shí)現(xiàn)分頁(yè)功能
