test: 测试使用实体类构建 QueryWrapper 时。

This commit is contained in:
Suomm 2024-10-02 11:42:48 +08:00
parent 0df1ea103b
commit 003d105e58
2 changed files with 42 additions and 18 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2022-2025, Mybatis-Flex (fuhai999@gmail.com). * Copyright (c) 2022-2024, Mybatis-Flex (fuhai999@gmail.com).
* <p> * <p>
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -16,7 +16,11 @@
package com.mybatisflex.test; package com.mybatisflex.test;
import com.mybatisflex.annotation.*; import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.ColumnMask;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import com.mybatisflex.core.handler.Fastjson2TypeHandler; import com.mybatisflex.core.handler.Fastjson2TypeHandler;
import com.mybatisflex.core.mask.Masks; import com.mybatisflex.core.mask.Masks;
@ -42,7 +46,7 @@ public class Entity04 extends BaseAccount implements Serializable {
@NotBlank @NotBlank
private Date birthday; private Date birthday;
@Column(typeHandler = Fastjson2TypeHandler.class, isLarge = true) @Column(typeHandler = Fastjson2TypeHandler.class)
private Map<String, Object> options; private Map<String, Object> options;
@Column(isLogicDelete = true) @Column(isLogicDelete = true)

View File

@ -1,48 +1,68 @@
/*
* Copyright (c) 2022-2024, Mybatis-Flex (fuhai999@gmail.com).
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mybatisflex.test; package com.mybatisflex.test;
import com.mybatisflex.core.MybatisFlexBootstrap; import com.mybatisflex.core.MybatisFlexBootstrap;
import com.mybatisflex.core.audit.AuditManager; import com.mybatisflex.core.audit.AuditManager;
import com.mybatisflex.core.audit.ConsoleMessageCollector; import com.mybatisflex.core.audit.ConsoleMessageCollector;
import com.mybatisflex.core.audit.MessageCollector;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.mapper.Entity04Mapper; import com.mybatisflex.mapper.Entity04Mapper;
import com.mybatisflex.test.table.Entity04TableDef;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
import javax.sql.DataSource; import javax.sql.DataSource;
import java.util.Collections;
import java.util.List; import java.util.List;
public class QueryWrapperTest { public class QueryWrapperTest {
public static void main(String[] args) { public static void main(String[] args) {
DataSource dataSource = new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.H2).addScript("schema04.sql") DataSource dataSource = new EmbeddedDatabaseBuilder()
.addScript("data04.sql").build(); .setType(EmbeddedDatabaseType.H2)
.addScript("schema04.sql")
.addScript("data04.sql")
.build();
MybatisFlexBootstrap bootstrap = MybatisFlexBootstrap.getInstance().setDataSource(dataSource) MybatisFlexBootstrap bootstrap = MybatisFlexBootstrap.getInstance()
.addMapper(Entity04Mapper.class).start(); .setDataSource(dataSource)
.addMapper(Entity04Mapper.class)
.start();
// 开启审计功能 // 开启审计功能
AuditManager.setAuditEnable(true); AuditManager.setAuditEnable(true);
// 设置 SQL 审计收集器 // 设置 SQL 审计收集器
MessageCollector collector = new ConsoleMessageCollector(); AuditManager.setMessageCollector(new ConsoleMessageCollector());
AuditManager.setMessageCollector(collector);
Entity04Mapper mapper = bootstrap.getMapper(Entity04Mapper.class); Entity04Mapper mapper = bootstrap.getMapper(Entity04Mapper.class);
Entity04 entity04 = new Entity04(); Entity04 entity04 = new Entity04();
entity04.setId("1"); entity04.setId("3");
entity04.setAge(200); entity04.setAge(200);
entity04.setOptions(Collections.singletonMap("key", "value"));
mapper.insertSelective(entity04); mapper.insertSelective(entity04);
System.out.println("--------------------selectListByQuery"); // 调用 Fastjson2TypeHandler 处理 options 属性拼接到查询语句中
QueryWrapper queryWrapper = QueryWrapper.create(entity04); QueryWrapper queryWrapper = QueryWrapper.create(entity04);
List<Entity04> entity04s = mapper.selectListByQuery(queryWrapper); List<Entity04> entity04s = mapper.selectListByQuery(queryWrapper);
System.out.println(entity04s); System.out.println(entity04);
System.out.println(entity04s.get(0));
System.out.println(Entity04TableDef.ENTITY04.AGE); System.out.println(entity04.toString().equals(entity04s.get(0).toString()));
} }
} }