doc: 修改错别字。

This commit is contained in:
Suomm 2023-07-29 19:48:48 +08:00
parent fa4c45870b
commit 28170ba135

View File

@ -1,10 +1,11 @@
# 自动映射 # 自动映射
在 MyBatis-Flex 中,内置了非常智能的 **自动映射** 功能,能够使得我们在查询数据的时候,从数据结果集绑定到实体类(或者 VO、DTO等等变得极其简单易用。 在 MyBatis-Flex 中,内置了非常智能的 **自动映射** 功能,能够使得我们在查询数据的时候,从数据结果集绑定到实体类(或者 VO、DTO
等)变得极其简单易用。
## 数据假设 ## 数据假设
假设在我们的项目中,有如下的表结构和实体类: 假设在我们的项目中,有如下的表结构和实体类:
账户表tb_account 账户表tb_account
```sql ```sql
@ -27,8 +28,8 @@ CREATE TABLE IF NOT EXISTS `tb_book`
`content` text `content` text
); );
``` ```
> 图书和账户的关系是多对一的关系:一个账户可以拥有多本书。
> 图书和账户的关系是多对一的关系:一个账户可以拥有多本书。
角色表tb_role 角色表tb_role
@ -41,6 +42,7 @@ CREATE TABLE IF NOT EXISTS `tb_role`
``` ```
账户和角色的 **多对多** 关系映射表tb_role_mapping 账户和角色的 **多对多** 关系映射表tb_role_mapping
```sql ```sql
CREATE TABLE IF NOT EXISTS `tb_role_mapping` CREATE TABLE IF NOT EXISTS `tb_role_mapping`
( (
@ -169,8 +171,8 @@ List<BookVo> bookVos = QueryChain.of(bookMapper)
BOOK.ALL_COLUMNS, //图书的所有字段 BOOK.ALL_COLUMNS, //图书的所有字段
ACCOUNT.USER_NAME, //用户表的 user_name 字段 ACCOUNT.USER_NAME, //用户表的 user_name 字段
ACCOUNT.AGE.as("userAge") //用户表的 age 字段, as "userAge" ACCOUNT.AGE.as("userAge") //用户表的 age 字段, as "userAge"
).form(BOOK) ).from(BOOK)
.leftJoin(ACCONT).on(BOOK.ACCOUNT_ID.eq(ACCOUNT.ID)) .leftJoin(ACCOUNT).on(BOOK.ACCOUNT_ID.eq(ACCOUNT.ID))
.where(ACCOUNT.ID.ge(100)) .where(ACCOUNT.ID.ge(100))
.listAs(BookVo.java); .listAs(BookVo.java);
``` ```
@ -199,8 +201,8 @@ List<BookVo> bookVos = QueryChain.of(bookMapper)
BOOK.DEFAULT_COLUMNS, BOOK.DEFAULT_COLUMNS,
ACCOUNT.DEFAULT_COLUMNS, ACCOUNT.DEFAULT_COLUMNS,
) )
.form(BOOK) .from(BOOK)
.leftJoin(ACCONT).on(BOOK.ACCOUNT_ID.eq(ACCOUNT.ID)) .leftJoin(ACCOUNT).on(BOOK.ACCOUNT_ID.eq(ACCOUNT.ID))
.where(ACCOUNT.ID.ge(100)) .where(ACCOUNT.ID.ge(100))
.listAs(BookVo.java); .listAs(BookVo.java);
``` ```
@ -224,7 +226,7 @@ public class AccountVO {
```java ```java
List<AccountVO> bookVos = QueryChain.of(accountMapper) List<AccountVO> bookVos = QueryChain.of(accountMapper)
.select() // 不传入参数等同于 SQL 的 select * .select() // 不传入参数等同于 SQL 的 select *
.form(ACCONT) .from(ACCOUNT)
.leftJoin(BOOK).on(ACCOUNT.ID.eq(BOOK.ACCOUNT_ID)) .leftJoin(BOOK).on(ACCOUNT.ID.eq(BOOK.ACCOUNT_ID))
.where(ACCOUNT.ID.ge(100)) .where(ACCOUNT.ID.ge(100))
.listAs(AccountVO.java); .listAs(AccountVO.java);
@ -241,7 +243,7 @@ List<AccountVO> bookVos = QueryChain.of(accountMapper)
BOOK.TITLE, BOOK.TITLE,
BOOK.CONTENT, BOOK.CONTENT,
) )
.form(ACCONT) .from(ACCOUNT)
.leftJoin(BOOK).on(ACCOUNT.ID.eq(BOOK.ACCOUNT_ID)) .leftJoin(BOOK).on(ACCOUNT.ID.eq(BOOK.ACCOUNT_ID))
.where(ACCOUNT.ID.ge(100)) .where(ACCOUNT.ID.ge(100))
.listAs(AccountVO.java); .listAs(AccountVO.java);
@ -286,7 +288,7 @@ List<AccountVO> bookVos = QueryChain.of(accountMapper)
BOOK.ID, BOOK.ID,
BOOK.NAME, BOOK.NAME,
) )
.form(ACCONT) .from(ACCOUNT)
.leftJoin(BOOK).on(ACCOUNT.ID.eq(BOOK.ACCOUNT_ID)) .leftJoin(BOOK).on(ACCOUNT.ID.eq(BOOK.ACCOUNT_ID))
.where(ACCOUNT.ID.ge(100)) .where(ACCOUNT.ID.ge(100))
.listAs(AccountVO.java); .listAs(AccountVO.java);
@ -315,7 +317,7 @@ where tb_account.id >= 100
```sql ```sql
List<AccountVO> bookVos = QueryChain.of(accountMapper) List<AccountVO> bookVos = QueryChain.of(accountMapper)
.select() .select()
.form(ACCONT) .from(ACCOUNT)
.leftJoin(BOOK).on(ACCOUNT.ID.eq(BOOK.ACCOUNT_ID)) .leftJoin(BOOK).on(ACCOUNT.ID.eq(BOOK.ACCOUNT_ID))
.where(ACCOUNT.ID.ge(100)) .where(ACCOUNT.ID.ge(100))
.listAs(AccountVO.java); .listAs(AccountVO.java);
@ -341,26 +343,25 @@ List<AccountVO> bookVos = QueryChain.of(accountMapper)
ACCOUNT.DEFAULT_COLUMNS, ACCOUNT.DEFAULT_COLUMNS,
BOOK.DEFAULT_COLUMNS BOOK.DEFAULT_COLUMNS
) )
.form(ACCONT) .from(ACCOUNT)
.leftJoin(BOOK).on(ACCOUNT.ID.eq(BOOK.ACCOUNT_ID)) .leftJoin(BOOK).on(ACCOUNT.ID.eq(BOOK.ACCOUNT_ID))
.where(ACCOUNT.ID.ge(100)) .where(ACCOUNT.ID.ge(100))
.listAs(AccountVO.java); .listAs(AccountVO.java);
``` ```
**`@ColumnAlias` 注解:**
**`@ColumnsAlias` 注解:** `@ColumnAlias` 注解的作用是用于定义在 entity 查询时,默认的 SQL 别名名称,可以取代自动生成的别名,例如:
`@ColumnsAlias` 注解的作用是用于定义在 entity 查询时,默认的 SQL 别名名称,例如:
```java ```java
public class Book { public class Book {
@ColumnsAlias("bookId") @ColumnAlias("bookId")
private Long id; private Long id;
private Long accountId; private Long accountId;
@ColumnsAlias("bookName") @ColumnAlias("bookName")
private String name; private String name;
} }
``` ```
@ -376,7 +377,7 @@ List<AccountVO> bookVos = QueryChain.of(accountMapper)
BOOK.ID, BOOK.ID,
BOOK.NAME, BOOK.NAME,
) )
.form(ACCONT) .from(ACCOUNT)
.leftJoin(BOOK).on(ACCOUNT.ID.eq(BOOK.ACCOUNT_ID)) .leftJoin(BOOK).on(ACCOUNT.ID.eq(BOOK.ACCOUNT_ID))
.where(ACCOUNT.ID.ge(100)) .where(ACCOUNT.ID.ge(100))
.listAs(AccountVO.java); .listAs(AccountVO.java);
@ -385,8 +386,8 @@ List<AccountVO> bookVos = QueryChain.of(accountMapper)
```sql 2,3 ```sql 2,3
select tb_account.id, tb_account.name, tb_account.age, select tb_account.id, tb_account.name, tb_account.age,
tb_book.id as bookId, -- @ColumnsAlias("bookId") tb_book.id as bookId, -- @ColumnAlias("bookId")
tb_book.name as bookName -- @ColumnsAlias("bookName") tb_book.name as bookName -- @ColumnAlias("bookName")
from tb_account from tb_account
left join tb_book on tb_account.id = tb_book.account_id left join tb_book on tb_account.id = tb_book.account_id
where tb_account.id >= 100 where tb_account.id >= 100