resultmap 怎么引用父类的resultmap
时间: 2024-09-11 07:17:46 浏览: 31
在使用MyBatis进行数据库操作时,ResultMap是定义如何将数据库查询的结果集映射到Java对象中的一个工具。如果你想要在一个子类的ResultMap中引用父类的ResultMap,可以使用extends属性来实现继承。这样,子类的ResultMap可以继承父类ResultMap的映射配置,并且还可以添加或覆盖父类的映射规则。
具体的做法是在子类的ResultMap配置中指定extends属性,并引用父类ResultMap的id。这样,子类ResultMap就继承了父类的所有映射规则,并且可以在此基础上进行扩展。下面是一个简单的示例:
```xml
<!-- 父类的ResultMap -->
<resultMap id="parentResultMap" type="ParentClass">
<result property="id" column="id"/>
<result property="name" column="name"/>
</resultMap>
<!-- 子类的ResultMap -->
<resultMap id="childResultMap" type="ChildClass" extends="parentResultMap">
<result property="extraProperty" column="extra_column"/>
</resultMap>
```
在这个例子中,ChildClass的ResultMap继承了ParentClass的ResultMap,并添加了一个额外的属性映射。
相关问题
怎么自动生成resultMap
你可以使用@AutoMap注解来自动生成resultMap。在实体类上使用@AutoMap注解,同时在@TableField注解的字段上配置字段信息,mybatis-plus会在应用启动时解析这些注解,并自动生成scan.mybatis-plus_xxxx为id的resultMap。这样你就可以在xml中直接使用这个resultMap实例了。@AutoMap注解还支持继承关系,可以自动构建子类的resultMap,并附加上父类的字段信息。这样,无论是简单的表连接还是复杂的返回实体对象,都可以通过继承来生成相应的resultMap。通过扫描后自动构建各种resultMap,在xml中引用即可。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [基于mybatisplus扫描实体类自动生成resultmap,自动填充多个主键](https://blog.csdn.net/thethefighter/article/details/110670454)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [自动生成resultMap文件源码](https://blog.csdn.net/weixin_44552194/article/details/106225075)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
mybatis中resultmap中映射了一个类,它的子类可以使用进行查询或添加吗
MyBatis中的ResultMap是用来将查询结果映射到Java对象的。如果一个类有子类,那么在ResultMap中映射该类时,只会映射该类的属性,不会映射子类的属性。因此,子类是不能直接使用该ResultMap进行查询或添加的。
如果你想查询子类的数据,可以使用继承的方式,让子类继承父类,并在ResultMap中映射父类的属性,然后在查询时使用子类进行查询。如果你想添加子类的数据,可以在添加时先将子类转换成父类,然后再添加到数据库中。
另外,如果你想让MyBatis能够自动将查询结果映射到子类中,可以使用MyBatis提供的自动映射功能。在查询时,只需要将查询结果映射到父类中即可,MyBatis会根据查询结果中的数据类型自动创建子类并将数据映射到子类中。
阅读全文