ResultType与ResultMap(一对多 ,一对一)
发布网友
发布时间:2024-10-21 22:24
我来回答
共1个回答
热心网友
时间:2024-11-05 14:54
resultType与resultMap主要涉及将查询结果映射为复杂类型的pojo,其中resultMap可以实现一对一和一对多的查询。
在处理一对多查询时,箭头指向的表代表“一”的一端,而箭头背向的表代表“多”的一端。在多的一端,存在一个一端的主键作为外键。在对应的java实体类中,一端的类会有一个集合属性指向多的一端的类。
为了实现这一功能,需要在pojo类中添加集合属性,并在resultMap标签中配置映射,包括填写pojo类中集合属性的名称和指定集合中元素的对象类型。
在Mapper文件中,需要先配置基本的sql语句。
-----------------------------------------------------------------------------------------------
对于一对一查询,例如查询一个订单信息时关联查询用户信息。如果从用户信息出发查询用户下的订单信息,则属于一对多查询,因为一个用户可以下多个订单。
在订单类中添加User属性,User属性是一个引用类型,用于存储关联查询的用户信息。由于关联关系是一对一,因此只需要添加单个属性即可。
-----------------------------------------------------------------------------------------------
多对多的关系通常由三张表来体现,其中两张是业务表,中间表是关系表。中间表通过箭头分别指向两张业务表,中间表中有两张业务表的主键作为外键(联合主键)。在java实体类中,两张业务表分别有对方业务表的集合属性。