update docs

This commit is contained in:
开源海哥 2023-06-09 11:31:26 +08:00
parent d41a72e06e
commit da8a3a9d97
2 changed files with 26 additions and 12 deletions

View File

@ -61,8 +61,8 @@ export default defineConfig({
items: [
{text: '增、删、改', link: '/zh/base/add-delete-update'},
{text: '查询(多表和分页)', link: '/zh/base/query'},
{text: '批量操作', link: '/zh/base/batch'},
{text: '一对多、多对一', link: '/zh/base/field-query'},
{text: '批量操作', link: '/zh/base/batch'},
{text: 'QueryWrapper', link: '/zh/base/querywrapper'},
{text: 'Db + Row', link: '/zh/base/db-row'},
{text: 'IService', link: '/zh/base/service'},

View File

@ -2,7 +2,7 @@
在很多场景下,我们可能会用到 `一对多``一对一``多对一``多对多`等场景的关联查询MyBatis-Flex 内置了相关的方法,用于支持此类场景。
## 代码示例Field Query
## Field Query 代码示例
以下是文章的示例,一篇文章可能归属于多个分类,一个类可以有多篇文章,需要用到中间表 `article_category_mapping`
@ -106,32 +106,48 @@ List<Article> articles = mapper.selectListByQuery(query
通过以上内容看出,`Article` 的任何属性,都是可以通过传入 `FieldQueryBuilder` 来构建 `QueryWrapper` 进行再次查询,
这些不仅仅只适用于 `一对多``一对一``多对一``多对多`等场景。任何 `Article` 对象里的属性,需要二次查询赋值的,都是可以通过这种方式进行。
## 结果映射
[comment]: <> (## 结果映射)
您也可以继续使用联表查询,如果是原生 MyBatis 的话,可以使用 `<resultMap>` 标签来构建结果映射,在 MyBatis-Flex 中提供了自动结果映射功能,这样您就可以只关注于 SQL 语句的构建。
[comment]: <> (您也可以继续使用联表查询,如果是原生 MyBatis 的话,可以使用 `<resultMap>` 标签来构建结果映射,在 MyBatis-Flex 中提供了自动结果映射功能,这样您就可以只关注于 SQL 语句的构建。)
## 代码示例Join Query
## Join Query
这里以用户和角色的 `多对多` 关系作为例子,首先有用户表和角色表,分别对应着用户类和角色类:
Join Query 是用于构建原生 MyBatis 如下的 `<resultMap>`
```xml
<resultMap id="testResultMap" type="com.mybatisflex.test.model.UserVO">
<id column="user_id" property="userId"/>
<result column="user_name" property="userName"/>
<collection property="roleList" ofType="com.mybatisflex.test.model.Role">
<id column="role_id" property="roleId"/>
<result column="role_key" property="roleKey"/>
<result column="role_name" property="roleName"/>
</collection>
</resultMap>
```
以上的 xml 是原生的 MyBatis 示例,在 MyBatis-Flex 我们不需要编写 xml 的 `<resultMap>`,这个过程由 MyBatis-Flex 自动完成,
我们只需要关注 MyBatis-Flex 的 SQL 构建即可。
## Join Query 代码示例
这里以 **用户****角色**`多对多` 关系作为例子,用户表和角色表,分别对应着用户类和角色类:
```java
@Table("sys_user")
public class User {
@Id
private Integer userId;
private String userName;
}
@Table("sys_role")
public class Role {
@Id
private Integer roleId;
private String roleKey;
private String roleName;
}
```
@ -139,11 +155,9 @@ public class Role {
```java
public class UserVO {
private String userId;
private String userName;
private List<Role> roleList;
}
```