diff --git a/docs/zh/base/active-record.md b/docs/zh/base/active-record.md index aaa774ee..f50178bf 100644 --- a/docs/zh/base/active-record.md +++ b/docs/zh/base/active-record.md @@ -137,30 +137,54 @@ Account.create() .page(Page.of(1,10)); ``` -## 多表关联 +## 关联查询 -`Model` 提供了 `joins` 与 `@Relation` 两种方式实现多表关联查询,例如:用户与角色的关系: +`Model` 提供了三种方式实现多表关联查询,例如:用户与角色的关系: -- 通过 [joins](./relations-query.md#方案-3-join-query) 联表方式查询数据: +- (默认)通过 [Joins Query](./relations-query.md#方案-3-join-query) 联表方式查询数据: ```java User.create() .select(USER.ALL_COLUMNS,ROLE.ALL_COLUMNS) .leftJoin(USER_ROLE).as("ur").on(USER_ROLE.USER_ID.eq(USER.USER_ID)) .leftJoin(ROLE).as("r").on(USER_ROLE.ROLE_ID.eq(ROLE.ROLE_ID)) - .where(USER.USER_ID.eq(2)) + .where(USER.USER_ID.eq(1)) .one(); ``` -> 更多关于 `left join` 等 join 查询,请请点击 [这里](./relations-query.md#方案-3-join-query); +> 获取更多关于 `Joins Query` 的信息,请点击 [这里](./relations-query.md#方案-3-join-query) - -- 通过 [@Relation](./relations-query.md#方案-1relations-注解) 相关注解查询数据: +- 通过 [Relations Query](./relations-query.md#方案-1relations-注解) 的方式查询数据: ```java User.create() - .where(USER.USER_ID.eq(2)) - .oneWithRelations(); + .where(USER.USER_ID.eq(1)) + .withRelations() // 使用 Relations Query 的方式进行关联查询。 + .maxDepth(3) // 设置父子关系查询中,默认的递归查询深度。 + .ignoreRelations("orderList") // 忽略查询部分 Relations 注解标记的属性。 + .extraCondition("id",100) // 添加额外的 Relations 查询条件。 + .one(); ``` -> 以上是用于查询 `一对多`、`多对多` 等场景,更多信息请点击 [这里](./relations-query.md#方案-1-relations-注解); +> 获取更多关于 `Relations Query` 的信息,请点击 [这里](./relations-query.md#方案-1relations-注解) + +- 通过 [Fields Query](./relations-query.md#方案-1relations-注解) 的方式查询数据: + +```java +User.create() + .where(USER.USER_ID.eq(1)) + .withFields() // 使用 Fields Query 的方式进行关联查询。 + .fieldMapping(User::getRoleList,user-> // 设置属性对应的 QueryWrapper 查询。 + QueryWrapper.create() + .select() + .from(ROLE) + .where(ROLE.ROLE_ID.in( + QueryWrapper.create() + .select(USER_ROLE.ROLE_ID) + .from(USER_ROLE) + .where(USER_ROLE.USER_ID.eq(user.getUserId())) + ))) + .one(); +``` + +> 获取更多关于 `Fields Query` 的信息,请点击 [这里](./relations-query.md#方案-2field-query)