update docs

This commit is contained in:
开源海哥 2023-05-24 13:38:12 +08:00
parent 0613699c98
commit 5bb0f6dfab
2 changed files with 11 additions and 10 deletions

View File

@ -1,10 +1,10 @@
# 一对多、多对一 # 一对多、多对一
在很多场景下,我们可能会用到 `一对多``一对一``多对一`等场景的关联查询MyBatis-Flex 内置了相关的方法,用于支持此类场景。 在很多场景下,我们可能会用到 `一对多``一对一``多对一``多对多`等场景的关联查询MyBatis-Flex 内置了相关的方法,用于支持此类场景。
## 代码示例 ## 代码示例(多对多)
以下是文章的示例,一篇文章可能归属于多个分类。 以下是文章的示例,一篇文章可能归属于多个分类,一个类可以有多篇文章,需要用到中间表 `article_category_mapping`
```java ```java
public class Article { public class Article {
@ -21,23 +21,23 @@ public class Article {
查询代码如下: 查询代码如下:
```java {10-13} ```java {10-14}
QueryWrapper queryWrapper = QueryWrapper.create() QueryWrapper queryWrapper = QueryWrapper.create()
.select().form(ARTICLE) .select().form(ARTICLE)
.where(ARTICLE.id.ge(100)); .where(ARTICLE.id.ge(100));
List<Article> articles = mapper.selectListByQuery(queryWrapper, fieldQueryBuilder -> { List<Article> articles = mapper.selectListByQuery(queryWrapper
fieldQueryBuilder , fieldQueryBuilder -> fieldQueryBuilder
.field(Article::getCategories) // 或者 .field("categories") .field(Article::getCategories) // 或者 .field("categories")
.type(Category.class) //非集合,可以不指定 type .type(Category.class) //非集合,自动读取 type可以不指定 type
.queryWrapper(article -> QueryWrapper.create() .queryWrapper(article -> QueryWrapper.create()
.select().from(CATEGORY) .select().from(CATEGORY)
.where(CATEGORY.id.in( .where(CATEGORY.id.in(
select("category_id").from("article_category_mapping") select("category_id").from("article_category_mapping")
.where("article_id = ?", article.getId()) .where("article_id = ?", article.getId())
) )
)); )
}); );
``` ```
通过以上代码可以看出,`Article.categories` 字段的结果,来源于 `queryWrapper()` 方法构建的 `QueryWrapper` 通过以上代码可以看出,`Article.categories` 字段的结果,来源于 `queryWrapper()` 方法构建的 `QueryWrapper`
@ -85,4 +85,4 @@ select * from tb_category where id in
## 其他场景 ## 其他场景
通过以上内容看出,`Article` 的任何属性,都是可以通过传入 `FieldQueryBuilder` 来构建 `QueryWrapper` 进行再次查询, 通过以上内容看出,`Article` 的任何属性,都是可以通过传入 `FieldQueryBuilder` 来构建 `QueryWrapper` 进行再次查询,
这些不仅仅只适用于 `一对多``一对一``多对一`等场景。任何 `Article` 对象里的属性,需要二次查询赋值的,都是可以通过这种方式进行。 这些不仅仅只适用于 `一对多``一对一``多对一``多对多`等场景。任何 `Article` 对象里的属性,需要二次查询赋值的,都是可以通过这种方式进行。

View File

@ -18,6 +18,7 @@ MyBatis-Flex 使用了 APTAnnotation Processing Tool技术在项目编
| processor.enable | 全局启用apt开关 | true/false | true | | processor.enable | 全局启用apt开关 | true/false | true |
| processor.mappersGenerateEnable | 开启 Mapper 自动生成 | true/false | false | | processor.mappersGenerateEnable | 开启 Mapper 自动生成 | true/false | false |
| processor.genPath | APT 代码生成路径 | 合法的绝对或相对路径 | target/generated-sources/annotations | | processor.genPath | APT 代码生成路径 | 合法的绝对或相对路径 | target/generated-sources/annotations |
| processor.allInTables | 是否所有的类都生成在 Tables 类里 | true/false | false |
| processor.tablesPackage | Tables 类名 | 合法的包名 | ${entityPackage}.table | | processor.tablesPackage | Tables 类名 | 合法的包名 | ${entityPackage}.table |
| processor.tablesClassName | Tables 类名 | 合法的类名 | Tables | | processor.tablesClassName | Tables 类名 | 合法的类名 | Tables |
| processor.baseMapperClass | 自定义 Mapper 的父类 | 全路径类名 | com.mybatisflex.core.BaseMapper | | processor.baseMapperClass | 自定义 Mapper 的父类 | 全路径类名 | com.mybatisflex.core.BaseMapper |