一对多查询
一对多查询用到的标签为<collection></collection>,该标签常用属性如下(未列举全部)
property 对应的Java属性
ofType 对应的需要查询的Java对象的全限定名
autoMapping 驼峰映射
我一般只使用这三种属性,因为我写SQL语句都是直接将需要的数据通过连接查询给查询出来,然后在resultMap中进行映射。当然也可以使用分步查询进行,当使用分步查询时,需要额外使用colum属性和select属性指定分步查询的参数和执行分步查询的方法的全限定名
colum 该属性一般指定执行分步查询语句的参数,使用SQL语句查询出来的列名,如果分步查询语句的参数有多个,可以使用{XX=列名,XX=列名}进行指定
select 该属性指定执行分步查询语句方法的全限定名
一对一查询
一对多查询用到的标签为<association></association>,该标签常用属性如下
property 对应的Java属性
ofType 对应的需要查询的Java对象的全限定名
autoMapping 驼峰映射
我一般只使用这三种属性,因为我写SQL语句都是直接将需要的数据通过连接查询给查询出来,然后在resultMap中进行映射。当然也可以使用分步查询进行,当使用分步查询时,同样需要额外使用colum属性和select属性指定分步查询的参数和执行分步查询的方法的全限定名
关于分步查询
一般使用分步查询时,我会考虑该方法是不是一定用到分步查询出来的对象,如果使用到该方法的业务一定会用到嵌套的对象时,那么就不开启延迟加载,如果有时不需要嵌套的对象,那么使用fetchType="true"开启延迟加载