mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 00:58:24 +08:00
update docs
This commit is contained in:
parent
d41a72e06e
commit
da8a3a9d97
@ -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'},
|
||||
|
||||
@ -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;
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user