代码调整

This commit is contained in:
yulichang 2023-08-07 16:35:39 +08:00
parent cc1b03ad3c
commit 026c64ee59
9 changed files with 313 additions and 301 deletions

View File

@ -8,7 +8,7 @@ import com.github.yulichang.kt.interfaces.Query;
import com.github.yulichang.kt.interfaces.QueryLabel;
import com.github.yulichang.toolkit.Constant;
import com.github.yulichang.toolkit.KtUtils;
import com.github.yulichang.toolkit.KtwWrapperUtils;
import com.github.yulichang.toolkit.KtWrapperUtils;
import com.github.yulichang.toolkit.TableList;
import com.github.yulichang.toolkit.support.ColumnCache;
import com.github.yulichang.wrapper.interfaces.Chain;
@ -203,7 +203,7 @@ public class KtLambdaWrapper<T> extends KtAbstractLambdaWrapper<T, KtLambdaWrapp
wrapper.alias = st;
wrapper.subTableAlias = st;
consumer.accept(wrapper);
String sql = KtwWrapperUtils.buildSubSqlByWrapper(clazz, wrapper, alias.getName());
String sql = KtWrapperUtils.buildSubSqlByWrapper(clazz, wrapper, alias.getName());
this.selectColumns.add(new SelectString(sql, hasAlias, this.alias));
return typedThis;
}
@ -218,7 +218,7 @@ public class KtLambdaWrapper<T> extends KtAbstractLambdaWrapper<T, KtLambdaWrapp
Class<?> entityClass = wrapper.getEntityClass();
Assert.notNull(entityClass, "请使用 new MPJLambdaWrapper(主表.class) 或 JoinWrappers.lambda(主表.class) 构造方法");
sb.append(" UNION ")
.append(KtwWrapperUtils.buildUnionSqlByWrapper(entityClass, wrapper));
.append(KtWrapperUtils.buildUnionSqlByWrapper(entityClass, wrapper));
}
if (Objects.isNull(unionSql)) {
unionSql = SharedString.emptyString();
@ -237,7 +237,7 @@ public class KtLambdaWrapper<T> extends KtAbstractLambdaWrapper<T, KtLambdaWrapp
Class<?> entityClass = wrapper.getEntityClass();
Assert.notNull(entityClass, "请使用 new MPJLambdaWrapper(主表.class) 或 JoinWrappers.lambda(主表.class) 构造方法");
sb.append(" UNION ALL ")
.append(KtwWrapperUtils.buildUnionSqlByWrapper(entityClass, wrapper));
.append(KtWrapperUtils.buildUnionSqlByWrapper(entityClass, wrapper));
}
if (Objects.isNull(unionSql)) {
unionSql = SharedString.emptyString();

View File

@ -12,6 +12,7 @@ import java.util.Arrays;
* @author yulichang
* @since 1.4.6
*/
@SuppressWarnings("unused")
public class FuncArgs {
public SelectFunc.Arg[] accept(KProperty<?>... kProperty) {

View File

@ -1,8 +1,5 @@
package com.github.yulichang.toolkit;
import com.github.yulichang.kt.KtDeleteJoinWrapper;
import com.github.yulichang.kt.KtLambdaWrapper;
import com.github.yulichang.kt.KtUpdateJoinWrapper;
import com.github.yulichang.query.MPJQueryWrapper;
import com.github.yulichang.wrapper.DeleteJoinWrapper;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
@ -105,74 +102,4 @@ public class JoinWrappers {
public static <T> UpdateJoinWrapper<T> update(String alias, Class<T> clazz) {
return new UpdateJoinWrapper<>(clazz, alias);
}
/**
* JoinWrappers.kt(User.class)
*/
public static <T> KtLambdaWrapper<T> kt(Class<T> clazz) {
return new KtLambdaWrapper<>(clazz);
}
/**
* JoinWrappers.kt("t", User.class)
*/
public static <T> KtLambdaWrapper<T> kt(String alias, Class<T> clazz) {
return new KtLambdaWrapper<>(clazz, alias);
}
/**
* JoinWrappers.kt(user)
*/
public static <T> KtLambdaWrapper<T> kt(T entity) {
return new KtLambdaWrapper<>(entity);
}
/**
* JoinWrappers.kt("t", user)
*/
public static <T> KtLambdaWrapper<T> kt(String alias, T entity) {
return new KtLambdaWrapper<>(entity, alias);
}
/**
* JoinWrappers.ktUpdate(User.class)
*/
public static <T> KtUpdateJoinWrapper<T> ktUpdate(Class<T> clazz) {
return new KtUpdateJoinWrapper<>(clazz);
}
/**
* JoinWrappers.ktUpdate("t", User.class)
*/
public static <T> KtUpdateJoinWrapper<T> ktUpdate(String alias, Class<T> clazz) {
return new KtUpdateJoinWrapper<>(clazz, alias);
}
/**
* JoinWrappers.ktUpdate(user)
*/
public static <T> KtUpdateJoinWrapper<T> ktUpdate(T entity) {
return new KtUpdateJoinWrapper<>(entity);
}
/**
* JoinWrappers.ktUpdate("t", user)
*/
public static <T> KtUpdateJoinWrapper<T> ktUpdate(String alias, T entity) {
return new KtUpdateJoinWrapper<>(entity, alias);
}
/**
* JoinWrappers.ktDelete(User.class)
*/
public static <T> KtDeleteJoinWrapper<T> ktDelete(Class<T> clazz) {
return new KtDeleteJoinWrapper<>(clazz);
}
/**
* JoinWrappers.ktUpdate("t", User.class)
*/
public static <T> KtDeleteJoinWrapper<T> ktDelete(String alias, Class<T> clazz) {
return new KtDeleteJoinWrapper<>(clazz, alias);
}
}

View File

@ -16,8 +16,9 @@ import java.util.Optional;
* @author yulichang
* @since 1.4.6
*/
public class KtwWrapperUtils {
public class KtWrapperUtils {
@SuppressWarnings("DuplicatedCode")
public static String buildSubSqlByWrapper(Class<?> clazz, KtLambdaWrapper<?> wrapper, String alias) {
TableInfo tableInfo = TableHelper.get(clazz);
Asserts.hasTable(tableInfo, clazz);
@ -52,6 +53,7 @@ public class KtwWrapperUtils {
alias);
}
@SuppressWarnings("DuplicatedCode")
public static String buildUnionSqlByWrapper(Class<?> clazz, KtLambdaWrapper<?> wrapper) {
TableInfo tableInfo = TableHelper.get(clazz);
Asserts.hasTable(tableInfo, clazz);
@ -92,6 +94,7 @@ public class KtwWrapperUtils {
return SqlScriptUtils.safeParam(paramStr, null);
}
@SuppressWarnings("DuplicatedCode")
private static String getEntitySql(TableInfo tableInfo, KtLambdaWrapper<?> wrapper) {
Object obj = wrapper.getEntity();
if (Objects.isNull(obj)) {

View File

@ -0,0 +1,83 @@
package com.github.yulichang.toolkit;
import com.github.yulichang.kt.KtDeleteJoinWrapper;
import com.github.yulichang.kt.KtLambdaWrapper;
import com.github.yulichang.kt.KtUpdateJoinWrapper;
/**
* @author yulichang
* @since 1.4.6
*/
@SuppressWarnings("unused")
public final class KtWrappers {
/**
* KtWrappers.kt(User.class)
*/
public static <T> KtLambdaWrapper<T> query(Class<T> clazz) {
return new KtLambdaWrapper<>(clazz);
}
/**
* KtWrappers.kt("t", User.class)
*/
public static <T> KtLambdaWrapper<T> query(String alias, Class<T> clazz) {
return new KtLambdaWrapper<>(clazz, alias);
}
/**
* KtWrappers.kt(user)
*/
public static <T> KtLambdaWrapper<T> query(T entity) {
return new KtLambdaWrapper<>(entity);
}
/**
* KtWrappers.kt("t", user)
*/
public static <T> KtLambdaWrapper<T> query(String alias, T entity) {
return new KtLambdaWrapper<>(entity, alias);
}
/**
* KtWrappers.ktUpdate(User.class)
*/
public static <T> KtUpdateJoinWrapper<T> update(Class<T> clazz) {
return new KtUpdateJoinWrapper<>(clazz);
}
/**
* KtWrappers.ktUpdate("t", User.class)
*/
public static <T> KtUpdateJoinWrapper<T> update(String alias, Class<T> clazz) {
return new KtUpdateJoinWrapper<>(clazz, alias);
}
/**
* KtWrappers.ktUpdate(user)
*/
public static <T> KtUpdateJoinWrapper<T> update(T entity) {
return new KtUpdateJoinWrapper<>(entity);
}
/**
* KtWrappers.ktUpdate("t", user)
*/
public static <T> KtUpdateJoinWrapper<T> update(String alias, T entity) {
return new KtUpdateJoinWrapper<>(entity, alias);
}
/**
* KtWrappers.ktDelete(User.class)
*/
public static <T> KtDeleteJoinWrapper<T> delete(Class<T> clazz) {
return new KtDeleteJoinWrapper<>(clazz);
}
/**
* KtWrappers.ktUpdate("t", User.class)
*/
public static <T> KtDeleteJoinWrapper<T> delete(String alias, Class<T> clazz) {
return new KtDeleteJoinWrapper<>(clazz, alias);
}
}

View File

@ -31,4 +31,4 @@ mybatis-plus-join:
banner: true
sub-table-logic: true
ms-cache: true
logic-del-type: where
logic-del-type: where

View File

@ -521,11 +521,12 @@ class LambdaWrapperTest {
*/
@Test
void testObj() {
ThreadLocalUtils.set("SELECT DISTINCT t1.id FROM `user` t LEFT JOIN `user` t1 ON (t1.pid = t.id) WHERE t.del=false AND t1.del=false");
ThreadLocalUtils.set("SELECT DISTINCT t.id FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) WHERE t.del=false AND t1.del=false ORDER BY t.id DESC");
MPJLambdaWrapper<UserDO> wrapper = new MPJLambdaWrapper<UserDO>()
.distinct()
.select(UserDO::getId)
.leftJoin(UserDO.class, UserDO::getPid, UserDO::getId);
.leftJoin(AddressDO.class, AddressDO::getUserId, UserDO::getId)
.orderByDesc(UserDO::getId);
List<Object> list = userMapper.selectObjs(wrapper);
}

View File

@ -36,7 +36,7 @@
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test</artifactId>
<artifactId>kotlin-test-junit</artifactId>
<version>1.8.21</version>
<scope>test</scope>
</dependency>

View File

@ -15,7 +15,7 @@ import com.github.yulichang.test.kt.mapper.UserDTOMapper
import com.github.yulichang.test.kt.mapper.UserMapper
import com.github.yulichang.test.util.Reset
import com.github.yulichang.test.util.ThreadLocalUtils
import com.github.yulichang.toolkit.JoinWrappers
import com.github.yulichang.toolkit.KtWrappers
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
@ -32,10 +32,7 @@ import java.util.*
* <p>
* 移除了mybatis-plus 逻辑删除支持逻辑删除需要在连表查询时自己添加对应的条件
*/
@Suppress(
"all", "unused", "UNUSED_VARIABLE", "PLATFORM_CLASS_MAPPED_TO_KOTLIN",
"SpringJavaInjectionPointsAutowiringInspection"
)
@Suppress("all")
@SpringBootTest
class LambdaWrapperTest {
@Autowired
@ -91,7 +88,7 @@ class LambdaWrapperTest {
" AND (t.id <= ?)\n" +
"ORDER BY t.id DESC"
)
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.selectAll(UserDO::class.java)
.selectCollection(AddressDO::class.java, UserDTO::addressList) { addr ->
addr.association(AreaDO::class.java, AddressDTO::area)
@ -99,10 +96,10 @@ class LambdaWrapperTest {
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
.le(UserDO::id, 10000)
.orderByDesc(UserDO::id)
val list = userMapper!!.selectJoinList(UserDTO::class.java, wrapper)
assert(list[0].addressList != null && list[0]!!.addressList!![0].id != null)
list.forEach(System.out::println)
.orderByDesc(UserDO::id)
val list = userMapper!!.selectJoinList(UserDTO::class.java, wrapper)
assert(list[0].addressList != null && list[0]!!.addressList!![0].id != null)
list.forEach(System.out::println)
}
@Test
@ -127,18 +124,18 @@ class LambdaWrapperTest {
" AND t1.del = false\n" +
" AND (t.id <= ?)\n" +
"ORDER BY t.id DESC"
)
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
)
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.selectAll(UserDO::class.java)
.selectCollection(AddressDO::class.java, UserDTO::addressIds) { e ->
e.id(AddressDO::id)
}
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.le(UserDO::id, 10000)
.orderByDesc(UserDO::id)
val list = userMapper!!.selectJoinList(UserDTO::class.java, wrapper)
assert(list[0].addressIds != null)
list.forEach(System.out::println)
.orderByDesc(UserDO::id)
val list = userMapper!!.selectJoinList(UserDTO::class.java, wrapper)
assert(list[0].addressIds != null)
list.forEach(System.out::println)
}
@ -176,18 +173,18 @@ class LambdaWrapperTest {
" AND t1.del = false\n" +
" AND t2.del = false\n" +
"ORDER BY t.id DESC"
)
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
)
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.selectAll(UserDO::class.java)
.selectCollection(AddressDO::class.java, UserDTO::addressList) { addr ->
addr.association(AreaDO::class.java, AddressDTO::area)
}
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
.orderByDesc(UserDO::id)
val list = userMapper!!.selectJoinList(UserDTO::class.java, wrapper)
assert(list[0]!!.addressList!![0].id != null)
list.forEach(System.out::println)
.orderByDesc(UserDO::id)
val list = userMapper!!.selectJoinList(UserDTO::class.java, wrapper)
assert(list[0]!!.addressList!![0].id != null)
list.forEach(System.out::println)
}
/**
@ -203,14 +200,14 @@ class LambdaWrapperTest {
"WHERE t.del = false\n" +
" AND t1.del = false\n" +
" AND t2.del = false"
)
)
//基本数据类型 和 String
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.select(UserDO::id)
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
val list: List<Integer> = userMapper!!.selectJoinList(Integer::class.java, wrapper)
println(list)
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
val list: List<Integer> = userMapper!!.selectJoinList(Integer::class.java, wrapper)
println(list)
ThreadLocalUtils.set(
@ -221,14 +218,14 @@ class LambdaWrapperTest {
"WHERE t.del = false\n" +
" AND t1.del = false\n" +
" AND t2.del = false"
)
)
//java.sql包下的类
val wrapper1: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
val wrapper1: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.select(UserDO::createTime)
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
val list1: List<Timestamp> = userMapper.selectJoinList(Timestamp::class.java, wrapper1)
println(list1)
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
val list1: List<Timestamp> = userMapper.selectJoinList(Timestamp::class.java, wrapper1)
println(list1)
}
@ -253,15 +250,15 @@ class LambdaWrapperTest {
" AND t.del = false\n" +
" AND (t.id <= ?)\n" +
"ORDER BY t.id ASC, t.`name` ASC"
)
val user = UserDO()
user.id = 1
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(user)
)
val user = UserDO()
user.id = 1
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(user)
.selectAll(UserDO::class.java)
.le(UserDO::id, 100)
.orderByAsc(UserDO::id, UserDO::name)
val list = userMapper!!.selectList(wrapper)
list.forEach(System.out::println)
.orderByAsc(UserDO::id, UserDO::name)
val list = userMapper!!.selectList(wrapper)
list.forEach(System.out::println)
}
@Test
@ -282,8 +279,8 @@ class LambdaWrapperTest {
" AND ub.del = false\n" +
" AND uc.del = false\n" +
" AND (ua.id <= ? AND ub.id >= ?)"
)
val wrapper: KtLambdaWrapper<UserDto> = JoinWrappers.kt("tt", UserDto::class.java)
)
val wrapper: KtLambdaWrapper<UserDto> = KtWrappers.query("tt", UserDto::class.java)
.selectAll(UserDto::class.java)
.leftJoin(UserDO::class.java, "ua", UserDO::id, UserDto::userId) { ext ->
ext.selectAs(UserDO::name, UserDto::userName)
@ -295,11 +292,11 @@ class LambdaWrapperTest {
}
.leftJoin(UserDO::class.java, "uc", UserDO::id, UserDto::updateBy) { ext ->
ext.selectAs(UserDO::name, UserDto::updateName)
}
val userDtos: List<UserDto> = userDTOMapper!!.selectJoinList(UserDto::class.java, wrapper)
assert(StringUtils.isNotBlank(userDtos[0].userName))
assert(StringUtils.isNotBlank(userDtos[0].createName))
assert(StringUtils.isNotBlank(userDtos[0].updateName))
}
val userDtos: List<UserDto> = userDTOMapper!!.selectJoinList(UserDto::class.java, wrapper)
assert(StringUtils.isNotBlank(userDtos[0].userName))
assert(StringUtils.isNotBlank(userDtos[0].createName))
assert(StringUtils.isNotBlank(userDtos[0].updateName))
ThreadLocalUtils.set(
@ -326,8 +323,8 @@ class LambdaWrapperTest {
" AND ub.del = false\n" +
" AND uc.del = false\n" +
" AND (ua.head_img = tt.`name` AND tt.id = ua.id)"
)
val w: KtLambdaWrapper<UserDO> = JoinWrappers.kt("tt", UserDO::class.java)
)
val w: KtLambdaWrapper<UserDO> = KtWrappers.query("tt", UserDO::class.java)
.selectAll(UserDO::class.java)
.leftJoin(UserDO::class.java, "ua", UserDO::id, UserDO::pid) { ext ->
ext.select(UserDO::id)
@ -337,9 +334,9 @@ class LambdaWrapperTest {
ext.select(UserDO::img)
}
.leftJoin(UserDO::class.java, "uc", UserDO::id, UserDO::updateBy)
.eq(UserDO::id, UserDO::id)
userMapper!!.selectJoinList(UserDO::class.java, w)
println(1)
.eq(UserDO::id, UserDO::id)
userMapper!!.selectJoinList(UserDO::class.java, w)
println(1)
}
/**
@ -376,16 +373,16 @@ class LambdaWrapperTest {
" LEFT JOIN `user` t1 ON (t1.pid = t.id)\n" +
"WHERE t.del = false\n" +
" AND (t.id > ?)"
)
)
//自连接
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.disableSubLogicDel()//关闭副表逻辑删除
.selectAll(UserDO::class.java)
.selectCollection(UserDO::class.java, UserDO::children)
.leftJoin(UserDO::class.java, UserDO::pid, UserDO::id)
.gt(UserDO::id, 0)
val list: List<UserDO> = userMapper!!.selectJoinList(UserDO::class.java, wrapper)
println(list)
.gt(UserDO::id, 0)
val list: List<UserDO> = userMapper!!.selectJoinList(UserDO::class.java, wrapper)
println(list)
ThreadLocalUtils.set(
"SELECT t.id,\n" +
@ -406,9 +403,9 @@ class LambdaWrapperTest {
" LEFT JOIN `user` t1 ON (t1.id = t.create_by)\n" +
" LEFT JOIN `user` t2 ON (t2.id = t.update_by)\n" +
"WHERE (t2.id = t.update_by AND t.id = t1.id)"
)
)
//关联一张表多次
val wrapper1: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
val wrapper1: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.disableLogicDel()
.disableSubLogicDel()
.selectAll(UserDO::class.java)
@ -416,13 +413,13 @@ class LambdaWrapperTest {
ext.selectAs(UserDO::name, UserDO::createName)
}
.leftJoin(UserDO::class.java) { on, ext ->
on.eq(UserDO::id, UserDO::updateBy)
on.eq(UserDO::id, UserDO::updateBy)
ext.selectAs(UserDO::name, UserDO::updateName)
.eq(UserDO::id, UserDO::updateBy)
.eq(UserDO::id, UserDO::updateBy)
}
.eq(UserDO::id, UserDO::id)
val dos: List<UserDO> = userMapper.selectJoinList(UserDO::class.java, wrapper1)
assert(dos[0].createName != null && dos[0].updateName != null)
.eq(UserDO::id, UserDO::id)
val dos: List<UserDO> = userMapper.selectJoinList(UserDO::class.java, wrapper1)
assert(dos[0].createName != null && dos[0].updateName != null)
ThreadLocalUtils.set(
@ -468,8 +465,8 @@ class LambdaWrapperTest {
" LEFT JOIN `user` t2 ON (t2.pid = t1.id)\n" +
"WHERE t.del = false\n" +
" AND (t1.id <= ? AND t.id <= ?)"
)
val wrapper2: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
)
val wrapper2: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.disableSubLogicDel()
.selectAll(UserDO::class.java)
.selectCollection("t1", UserDO::class.java, UserDO::children) { c ->
@ -480,9 +477,9 @@ class LambdaWrapperTest {
.leftJoin(UserDO::class.java, UserDO::pid, UserDO::id)
.le(UserDO::id, 5)
}
.le(UserDO::id, 4)
val list1: List<UserDO> = userMapper.selectJoinList(UserDO::class.java, wrapper2)
println(list1)
.le(UserDO::id, 4)
val list1: List<UserDO> = userMapper.selectJoinList(UserDO::class.java, wrapper2)
println(list1)
}
/**
@ -490,29 +487,29 @@ class LambdaWrapperTest {
*/
@Test
fun testLogicDel() {
val l1: List<UserDTO> = userMapper!!.selectJoinList(UserDTO::class.java, JoinWrappers.kt(UserDO::class.java))
assert(l1.size == 14)
val l1: List<UserDTO> = userMapper!!.selectJoinList(UserDTO::class.java, KtWrappers.query(UserDO::class.java))
assert(l1.size == 14)
val l2: List<UserDTO> = userMapper.selectJoinList(
UserDTO::class.java, JoinWrappers.kt(UserDO::class.java)
UserDTO::class.java, KtWrappers.query(UserDO::class.java)
.selectAll(UserDO::class.java)
.select(AddressDO::address)
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
)
assert(l2.size == 10)
)
assert(l2.size == 10)
val l3: List<UserDTO> = userMapper.selectJoinList(
UserDTO::class.java, JoinWrappers.kt(UserDO::class.java)
UserDTO::class.java, KtWrappers.query(UserDO::class.java)
.disableSubLogicDel()
.selectAll(UserDO::class.java)
.selectCollection(AddressDO::class.java, UserDTO::addressList)
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
)
assert(l3.size == 14 && l3[0].addressList!!.size == 9)
)
assert(l3.size == 14 && l3[0].addressList!!.size == 9)
val l4: List<UserDTO> = userMapper.selectJoinList(
UserDTO::class.java,
JoinWrappers.kt(UserDO::class.java)
KtWrappers.query(UserDO::class.java)
.disableSubLogicDel()
.selectAll(UserDO::class.java)
.selectCollection(AddressDO::class.java, UserDTO::addressList)
@ -520,8 +517,8 @@ class LambdaWrapperTest {
on.eq(AddressDO::userId, UserDO::id)
.eq(AddressDO::del, false)
}
)
assert(l4.size == 14 && l4[0].addressList!!.size == 5)
)
assert(l4.size == 14 && l4[0].addressList!!.size == 5)
}
@ -530,14 +527,14 @@ class LambdaWrapperTest {
*/
@Test
fun testAlias() {
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.selectAll(UserDO::class.java)
.selectCollection(UserDO::class.java, UserDO::children)
.leftJoin(UserDO::class.java, UserDO::pid, UserDO::id)
val list: List<UserDO> = userMapper!!.selectJoinList(UserDO::class.java, wrapper)
assert(list[0].name != null && list[0].children!![0].name != null)
assert(list[0].img != null && list[0].children!![0].img != null)
println(list)
.leftJoin(UserDO::class.java, UserDO::pid, UserDO::id)
val list: List<UserDO> = userMapper!!.selectJoinList(UserDO::class.java, wrapper)
assert(list[0].name != null && list[0].children!![0].name != null)
assert(list[0].img != null && list[0].children!![0].img != null)
println(list)
}
@Test
@ -565,29 +562,29 @@ class LambdaWrapperTest {
" LEFT JOIN address aa ON (aa.user_id = t.id)\n" +
"WHERE t.del = false\n" +
" AND aa.del = false"
)
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
)
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.selectAll(UserDO::class.java)
.selectAll(AddressDO::class.java, "aa")
.leftJoin(AddressDO::class.java, "aa", AddressDO::userId, UserDO::id)
val list: List<UserDO> = userMapper!!.selectJoinList(UserDO::class.java, wrapper)
println(list)
.leftJoin(AddressDO::class.java, "aa", AddressDO::userId, UserDO::id)
val list: List<UserDO> = userMapper!!.selectJoinList(UserDO::class.java, wrapper)
println(list)
}
@Test
fun testLabel() {
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.disableSubLogicDel()
.selectAll(UserDO::class.java)
.selectCollection("t1", AddressDO::class.java, UserDO::addressList)
.selectCollection("t2", AddressDO::class.java, UserDO::addressList2)
.leftJoin(AddressDO::class.java, AddressDO::id, UserDO::addressId)
.leftJoin(AddressDO::class.java, AddressDO::id, UserDO::addressId2)
val list: List<UserDO> = userMapper!!.selectJoinList(UserDO::class.java, wrapper)
.leftJoin(AddressDO::class.java, AddressDO::id, UserDO::addressId2)
val list: List<UserDO> = userMapper!!.selectJoinList(UserDO::class.java, wrapper)
assert(list[0].addressList!![0].address != null)
assert(list[0].addressList2!![0].address != null)
println(list)
assert(list[0].addressList!![0].address != null)
assert(list[0].addressList2!![0].address != null)
println(list)
}
@ -596,11 +593,11 @@ class LambdaWrapperTest {
*/
@Test
fun test1() {
val page: Page<UserDTO> = Page(1, 10)
page.setSearchCount(false)
val page: Page<UserDTO> = Page(1, 10)
page.setSearchCount(false)
val iPage: IPage<UserDTO> = userMapper!!.selectJoinPage(
page, UserDTO::class.java,
JoinWrappers.kt(UserDO::class.java)
KtWrappers.query(UserDO::class.java)
.selectAll(
UserDO::class.java
)
@ -608,8 +605,8 @@ class LambdaWrapperTest {
.select(AreaDO::province)
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
)
iPage.records.forEach(System.out::println)
)
iPage.records.forEach(System.out::println)
}
/**
@ -638,10 +635,10 @@ class LambdaWrapperTest {
" AND t1.del = false\n" +
" AND (t.id = ? AND (t.head_img = ? OR t1.user_id = ?) AND t.id = ?)\n" +
"LIMIT ?"
)
)
val page: IPage<UserDTO> = userMapper!!.selectJoinPage(
Page(1, 10), UserDTO::class.java,
JoinWrappers.kt(UserDO::class.java)
KtWrappers.query(UserDO::class.java)
.selectAll(UserDO::class.java)
.select(AddressDO::address)
.leftJoin(AddressDO::class.java) { on ->
@ -655,8 +652,8 @@ class LambdaWrapperTest {
.eq(AddressDO::userId, 1)
}
.eq(UserDO::id, 1)
)
page.records.forEach(System.out::println)
)
page.records.forEach(System.out::println)
}
/**
@ -665,12 +662,12 @@ class LambdaWrapperTest {
@Test
fun test4() {
val one: UserDTO = userMapper!!.selectJoinOne(
UserDTO::class.java, JoinWrappers.kt(UserDO::class.java)
UserDTO::class.java, KtWrappers.query(UserDO::class.java)
.selectSum(UserDO::id)
.selectMax(UserDO::id, UserDTO::headImg)
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
)
println(one)
)
println(one)
}
@ -679,14 +676,14 @@ class LambdaWrapperTest {
*/
@Test
fun test6() {
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.selectAll(UserDO::class.java)
.selectFilter(AddressDO::class.java) { true }
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.eq(UserDO::id, 1)
val page: IPage<UserDTO> = userMapper!!.selectJoinPage(Page(1, 10), UserDTO::class.java, wrapper)
assert(page.records[0].address != null)
page.records.forEach(System.out::println)
.eq(UserDO::id, 1)
val page: IPage<UserDTO> = userMapper!!.selectJoinPage(Page(1, 10), UserDTO::class.java, wrapper)
assert(page.records[0].address != null)
page.records.forEach(System.out::println)
}
/**
@ -694,13 +691,13 @@ class LambdaWrapperTest {
*/
@Test
fun test8() {
ThreadLocalUtils.set("SELECT t.`name` FROM `user` t WHERE t.del=false AND (t.`name` = ?)")
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
ThreadLocalUtils.set("SELECT t.`name` FROM `user` t WHERE t.del=false AND (t.`name` = ?)")
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.select(UserDO::name)
.eq(UserDO::name, "ref")
userMapper!!.selectList(wrapper)
.eq(UserDO::name, "ref")
userMapper!!.selectList(wrapper)
try {
userMapper.insertBatchSomeColumn(ArrayList())
userMapper.insertBatchSomeColumn(ArrayList())
} catch (ignored: BadSqlGrammarException) {
}
}
@ -712,13 +709,13 @@ class LambdaWrapperTest {
@Test
fun test7() {
val list: List<Map<String, Any>> = userMapper!!.selectJoinMaps(
JoinWrappers.kt(UserDO::class.java)
KtWrappers.query(UserDO::class.java)
.selectAll(UserDO::class.java)
.select(AddressDO::address)
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
)
assert(list[0]["ADDRESS"] != null || list[0]["address"] != null)
list.forEach(System.out::println)
)
assert(list[0]["ADDRESS"] != null || list[0]["address"] != null)
list.forEach(System.out::println)
}
/**
@ -727,22 +724,22 @@ class LambdaWrapperTest {
@Test
fun testMP() {
val dos: MutableList<UserDO?>? = userMapper!!.selectList(
JoinWrappers.kt(UserDO::class.java)
KtWrappers.query(UserDO::class.java)
.gt(UserDO::id, 3)
.lt(UserDO::id, 8)
)
assert(dos!!.size == 4)
)
assert(dos!!.size == 4)
ThreadLocalUtils.set(
"SELECT id,pid,`name`,`json`,sex,head_img,create_time,address_id,address_id2,del,create_by,update_by FROM `user` t WHERE t.del=false AND (t.id > ? AND t.id < ?)",
"SELECT * FROM `user` t WHERE t.del=false AND (t.id > ? AND t.id < ?) "
)
)
val dos1: MutableList<UserDO?>? = userMapper.selectList(
JoinWrappers.kt(UserDO::class.java)
KtWrappers.query(UserDO::class.java)
.gt(UserDO::id, 3)
.lt(UserDO::id, 8)
)
assert(dos1!!.size == 4)
)
assert(dos1!!.size == 4)
}
/**
@ -750,16 +747,16 @@ class LambdaWrapperTest {
*/
@Test
fun testFunc() {
ThreadLocalUtils.set("SELECT if(t1.user_id < 5,t1.user_id,t1.user_id + 100) AS id FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) WHERE t.del=false AND t1.del=false")
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
ThreadLocalUtils.set("SELECT if(t1.user_id < 5,t1.user_id,t1.user_id + 100) AS id FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) WHERE t.del=false AND t1.del=false")
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.selectFunc(
"if(%s < 5,%s,%s + 100)",
{ arg -> arg.accept(AddressDO::userId, AddressDO::userId, AddressDO::userId) }, UserDO::id
)
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
try {
val dos: List<UserDO> = userMapper!!.selectJoinList(UserDO::class.java, wrapper)
val dos: List<UserDO> = userMapper!!.selectJoinList(UserDO::class.java, wrapper)
} catch (_: BadSqlGrammarException) {
}
}
@ -769,17 +766,17 @@ class LambdaWrapperTest {
*/
@Test
fun testGeneric() {
val wrapper: KtLambdaWrapper<AddressDO> = JoinWrappers.kt(AddressDO::class.java)
val wrapper: KtLambdaWrapper<AddressDO> = KtWrappers.query(AddressDO::class.java)
.selectAll(AddressDO::class.java)
.le(AddressDO::id, 10000)
.orderByDesc(AddressDO::id)
val list: List<AddressDTO> = addressMapper!!.selectJoinList(AddressDTO::class.java, wrapper)
.orderByDesc(AddressDO::id)
val list: List<AddressDTO> = addressMapper!!.selectJoinList(AddressDTO::class.java, wrapper)
assert(
Objects.equals(
"[AddressDTO(id=22, userId=22, areaId=10022, tel=10000000022, address=朝阳22, del=false, areaList=null, area=null), AddressDTO(id=21, userId=21, areaId=10021, tel=10000000021, address=朝阳21, del=false, areaList=null, area=null), AddressDTO(id=20, userId=20, areaId=10020, tel=10000000020, address=朝阳20, del=false, areaList=null, area=null), AddressDTO(id=19, userId=19, areaId=10019, tel=10000000019, address=朝阳19, del=false, areaList=null, area=null), AddressDTO(id=18, userId=18, areaId=10018, tel=10000000018, address=朝阳18, del=false, areaList=null, area=null), AddressDTO(id=17, userId=17, areaId=10017, tel=10000000017, address=朝阳17, del=false, areaList=null, area=null), AddressDTO(id=16, userId=16, areaId=10016, tel=10000000016, address=朝阳16, del=false, areaList=null, area=null), AddressDTO(id=15, userId=15, areaId=10015, tel=10000000015, address=朝阳15, del=false, areaList=null, area=null), AddressDTO(id=14, userId=14, areaId=10014, tel=10000000014, address=朝阳14, del=false, areaList=null, area=null), AddressDTO(id=13, userId=13, areaId=10013, tel=10000000013, address=朝阳13, del=false, areaList=null, area=null), AddressDTO(id=12, userId=12, areaId=10012, tel=10000000012, address=朝阳12, del=false, areaList=null, area=null), AddressDTO(id=11, userId=11, areaId=10011, tel=10000000011, address=朝阳11, del=false, areaList=null, area=null), AddressDTO(id=10, userId=10, areaId=10010, tel=10000000010, address=朝阳10, del=false, areaList=null, area=null), AddressDTO(id=5, userId=1, areaId=10005, tel=10000000005, address=朝阳05, del=false, areaList=null, area=null), AddressDTO(id=4, userId=1, areaId=10004, tel=10000000004, address=朝阳04, del=false, areaList=null, area=null), AddressDTO(id=3, userId=1, areaId=10003, tel=10000000003, address=朝阳03, del=false, areaList=null, area=null), AddressDTO(id=2, userId=1, areaId=10002, tel=10000000002, address=朝阳02, del=false, areaList=null, area=null), AddressDTO(id=1, userId=1, areaId=10001, tel=10000000001, address=朝阳01, del=false, areaList=null, area=null)]",
list.toString()
)
)
)
}
/**
@ -791,17 +788,17 @@ class LambdaWrapperTest {
"SELECT COUNT( 1 ) FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) LEFT JOIN area t2 ON (t2.id = t1.area_id) WHERE t.del=false AND t1.del=false AND t2.del=false",
"SELECT COUNT( * ) FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) LEFT JOIN area t2 ON (t2.id = t1.area_id) WHERE t.del=false AND t1.del=false AND t2.del=false",
"SELECT COUNT( * ) AS total FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) LEFT JOIN area t2 ON (t2.id = t1.area_id) WHERE t.del=false AND t1.del=false AND t2.del=false"
)
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
)
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
val integer: Long = userMapper!!.selectCount(wrapper)
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
val integer: Long = userMapper!!.selectCount(wrapper)
ThreadLocalUtils.set("SELECT COUNT( * ) FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) LEFT JOIN area t2 ON (t2.id = t1.area_id) WHERE t.del=false AND t1.del=false AND t2.del=false")
val wrapper1: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
ThreadLocalUtils.set("SELECT COUNT( * ) FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) LEFT JOIN area t2 ON (t2.id = t1.area_id) WHERE t.del=false AND t1.del=false AND t2.del=false")
val wrapper1: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
val aLong1: Long = userMapper.selectJoinCount(wrapper1)
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
val aLong1: Long = userMapper.selectJoinCount(wrapper1)
}
@ -810,8 +807,8 @@ class LambdaWrapperTest {
*/
@Test
fun testTable() {
ThreadLocalUtils.set("SELECT t.id FROM `user`bbbbbbb t LEFT JOIN addressaaaaaaaaaa t1 ON (t1.user_id = t.id) LEFT JOIN area t2 ON (t2.id = t1.area_id) WHERE t.del=false AND t1.del=false AND t2.del=false AND (t.id <= ?) ORDER BY t.id DESC")
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
ThreadLocalUtils.set("SELECT t.id FROM `user`bbbbbbb t LEFT JOIN addressaaaaaaaaaa t1 ON (t1.user_id = t.id) LEFT JOIN area t2 ON (t2.id = t1.area_id) WHERE t.del=false AND t1.del=false AND t2.del=false AND (t.id <= ?) ORDER BY t.id DESC")
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.select(UserDO::id)
.leftJoin(AddressDO::class.java) { on ->
on.eq(AddressDO::userId, UserDO::id)
@ -820,9 +817,9 @@ class LambdaWrapperTest {
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
.le(UserDO::id, 10000)
.orderByDesc(UserDO::id)
.setTableName { name -> name + "bbbbbbb" }
.setTableName { name -> name + "bbbbbbb" }
try {
val list = userMapper!!.selectJoinList(UserDTO::class.java, wrapper)
val list = userMapper!!.selectJoinList(UserDTO::class.java, wrapper)
} catch (_: BadSqlGrammarException) {
}
}
@ -864,8 +861,8 @@ class LambdaWrapperTest {
"WHERE t.del = false\n" +
" AND (t.id <= ?)\n" +
"ORDER BY t.id DESC\n"
)
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
)
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.logicDelToOn()
.selectAll(UserDO::class.java)
.selectCollection(AddressDO::class.java, UserDTO::addressList) { addr ->
@ -874,12 +871,12 @@ class LambdaWrapperTest {
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
.le(UserDO::id, 10000)
.orderByDesc(UserDO::id)
println(wrapper.from)
val list = userMapper!!.selectJoinList(UserDTO::class.java, wrapper)
.orderByDesc(UserDO::id)
println(wrapper.from)
val list = userMapper!!.selectJoinList(UserDTO::class.java, wrapper)
assert(list[0].addressList != null && list[0].addressList!![0].id != null)
list.forEach(System.out::println)
assert(list[0].addressList != null && list[0].addressList!![0].id != null)
list.forEach(System.out::println)
}
/**
@ -918,8 +915,8 @@ class LambdaWrapperTest {
"WHERE t.del = false\n" +
" AND (t.id <= ?)\n" +
"ORDER BY t.id DESC\n"
)
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
)
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.logicDelToOn()
.selectAll(UserDO::class.java)
.selectCollection(AddressDO::class.java, UserDTO::addressList) { addr ->
@ -928,18 +925,18 @@ class LambdaWrapperTest {
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
.le(UserDO::id, 10000)
.orderByDesc(UserDO::id)
.orderByDesc(UserDO::id)
val list = wrapper.list(UserDTO::class.java)
val list = wrapper.list(UserDTO::class.java)
println(list)
assert(list[0].addressList != null && list[0].addressList!![0].id != null)
list.forEach(System.out::println)
println(list)
assert(list[0].addressList != null && list[0].addressList!![0].id != null)
list.forEach(System.out::println)
}
@Test
fun joinRandomMap() {
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.logicDelToOn()
.selectAll(UserDO::class.java)
.selectCollection(UserDTO::addressList) { addr ->
@ -953,23 +950,23 @@ class LambdaWrapperTest {
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
.le(UserDO::id, 10000)
.orderByDesc(UserDO::id)
.orderByDesc(UserDO::id)
val list: MutableList<UserDTO> = wrapper.list(UserDTO::class.java)
println(list)
assert(list[0].addressList != null && list[0].addressList!![0].id != null)
list.forEach(System.out::println)
val list: MutableList<UserDTO> = wrapper.list(UserDTO::class.java)
println(list)
assert(list[0].addressList != null && list[0].addressList!![0].id != null)
list.forEach(System.out::println)
}
@Test
fun joinRandomMap111() {
ThreadLocalUtils.set("SELECT t.id,t.user_id,t.area_id,t.tel,t.address,t.del FROM address t LEFT JOIN `user` t1 ON (t1.address_id = t.id) LEFT JOIN `user` t2 ON (t2.pid = t1.id) WHERE t.del=false AND t1.del=false AND t2.del=false")
val wrapper: KtLambdaWrapper<AddressDO> = JoinWrappers.kt(AddressDO::class.java)
ThreadLocalUtils.set("SELECT t.id,t.user_id,t.area_id,t.tel,t.address,t.del FROM address t LEFT JOIN `user` t1 ON (t1.address_id = t.id) LEFT JOIN `user` t2 ON (t2.pid = t1.id) WHERE t.del=false AND t1.del=false AND t2.del=false")
val wrapper: KtLambdaWrapper<AddressDO> = KtWrappers.query(AddressDO::class.java)
.selectAll(AddressDO::class.java)
.leftJoin(UserDO::class.java, UserDO::addressId, AddressDO::id)
.leftJoin(UserDO::class.java, UserDO::pid, UserDO::id)
.leftJoin(UserDO::class.java, UserDO::pid, UserDO::id)
val addressDOS: List<AddressDO> = wrapper.list()
val addressDOS: List<AddressDO> = wrapper.list()
}
/**
@ -977,13 +974,13 @@ class LambdaWrapperTest {
*/
@Test
fun joinOwn() {
ThreadLocalUtils.set("SELECT t.id,t.pid,t.`name`,t.`json`,t.sex,t.head_img,t.create_time,t.address_id,t.address_id2,t.del,t.create_by,t.update_by FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) WHERE t.del=false AND t1.del=false AND (t1.id = t1.id)")
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
ThreadLocalUtils.set("SELECT t.id,t.pid,t.`name`,t.`json`,t.sex,t.head_img,t.create_time,t.address_id,t.address_id2,t.del,t.create_by,t.update_by FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) WHERE t.del=false AND t1.del=false AND (t1.id = t1.id)")
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.selectAll(UserDO::class.java)
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.eq(AddressDO::id, AddressDO::id)
.eq(AddressDO::id, AddressDO::id)
val addressDOS: List<UserDO> = wrapper.list()
val addressDOS: List<UserDO> = wrapper.list()
}
/**
@ -991,14 +988,14 @@ class LambdaWrapperTest {
*/
@Test
fun joinOwn1() {
ThreadLocalUtils.set("SELECT t.id,t.pid,t.`name`,t.`json`,t.sex,t.head_img,t.create_time,t.address_id,t.address_id2,t.del,t.create_by,t.update_by FROM `user` t LEFT JOIN address aaa ON (aaa.user_id = t.id) WHERE t.del=false AND aaa.del=false AND (aaa.id = t.id AND aaa.id = aaa.id)")
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
ThreadLocalUtils.set("SELECT t.id,t.pid,t.`name`,t.`json`,t.sex,t.head_img,t.create_time,t.address_id,t.address_id2,t.del,t.create_by,t.update_by FROM `user` t LEFT JOIN address aaa ON (aaa.user_id = t.id) WHERE t.del=false AND aaa.del=false AND (aaa.id = t.id AND aaa.id = aaa.id)")
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.selectAll(UserDO::class.java)
.leftJoin(AddressDO::class.java, "aaa", AddressDO::userId, UserDO::id) { ext ->
ext.eq(AddressDO::id, AddressDO::id)
}
.eq(AddressDO::id, AddressDO::id)
val addressDOS: List<UserDO> = wrapper.list()
.eq(AddressDO::id, AddressDO::id)
val addressDOS: List<UserDO> = wrapper.list()
}
/**
@ -1009,20 +1006,20 @@ class LambdaWrapperTest {
ThreadLocalUtils.set(
"SELECT id,user_id,name FROM order_t t ORDER BY t.name DESC",
"SELECT id,user_id,name FROM order_t t ORDER BY t.name desc"
)
val wrapper: KtLambdaWrapper<OrderDO> = JoinWrappers.kt(OrderDO::class.java)
val list: List<OrderDO> = wrapper.list()
)
val wrapper: KtLambdaWrapper<OrderDO> = KtWrappers.query(OrderDO::class.java)
val list: List<OrderDO> = wrapper.list()
ThreadLocalUtils.set(
"SELECT t.id,t.user_id,t.name,t1.`name` AS userName FROM order_t t LEFT JOIN `user` t1 ON (t1.id = t.user_id) WHERE t1.del=false ORDER BY t.name DESC",
"SELECT t.id,t.user_id,t.name,t1.`name` AS userName FROM order_t t LEFT JOIN `user` t1 ON (t1.id = t.user_id) WHERE t1.del=false ORDER BY t.name desc"
)
val w: KtLambdaWrapper<OrderDO> = JoinWrappers.kt(OrderDO::class.java)
)
val w: KtLambdaWrapper<OrderDO> = KtWrappers.query(OrderDO::class.java)
.selectAll(OrderDO::class.java)
.selectAs(UserDO::name, OrderDO::userName)
.leftJoin(UserDO::class.java, UserDO::id, OrderDO::userId)
println(wrapper.from)
val l: List<OrderDO> = w.list()
.leftJoin(UserDO::class.java, UserDO::id, OrderDO::userId)
println(wrapper.from)
val l: List<OrderDO> = w.list()
}
/**
@ -1031,24 +1028,24 @@ class LambdaWrapperTest {
@Test
fun delete() {
//物理删除
ThreadLocalUtils.set("DELETE t FROM order_t t LEFT JOIN user_dto t1 ON (t1.id = t.user_id) WHERE (t.id = ?)")
val w: KtDeleteJoinWrapper<OrderDO> = JoinWrappers.ktDelete(OrderDO::class.java)
ThreadLocalUtils.set("DELETE t FROM order_t t LEFT JOIN user_dto t1 ON (t1.id = t.user_id) WHERE (t.id = ?)")
val w: KtDeleteJoinWrapper<OrderDO> = KtWrappers.delete(OrderDO::class.java)
.leftJoin(UserDto::class.java, UserDto::id, OrderDO::userId)
.eq(OrderDO::id, 1)
.eq(OrderDO::id, 1)
try {
orderMapper!!.deleteJoin(w)
orderMapper!!.deleteJoin(w)
} catch (_: BadSqlGrammarException) {
//忽略异常 h2不支持连表删除
}
//逻辑删除
ThreadLocalUtils.set("UPDATE `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) LEFT JOIN area t2 ON (t2.id = t1.area_id) SET t.del=true ,t1.del=true,t2.del=true WHERE t.del=false AND t1.del=false AND t2.del=false AND (t.id = ?)")
val wrapper: KtDeleteJoinWrapper<UserDO> = JoinWrappers.ktDelete(UserDO::class.java)
ThreadLocalUtils.set("UPDATE `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) LEFT JOIN area t2 ON (t2.id = t1.area_id) SET t.del=true ,t1.del=true,t2.del=true WHERE t.del=false AND t1.del=false AND t2.del=false AND (t.id = ?)")
val wrapper: KtDeleteJoinWrapper<UserDO> = KtWrappers.delete(UserDO::class.java)
.deleteAll()
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.leftJoin(AreaDO::class.java, AreaDO::id, AddressDO::areaId)
.eq(OrderDO::id, 1)
.eq(OrderDO::id, 1)
try {
userMapper!!.deleteJoin(wrapper)
userMapper!!.deleteJoin(wrapper)
} catch (_: BadSqlGrammarException) {
//忽略异常 h2不支持连表删除
}
@ -1069,8 +1066,8 @@ class LambdaWrapperTest {
val user1 = UserDO()
user1.updateBy = 123123
ThreadLocalUtils.set("UPDATE `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) SET t.update_by=?, t.`name`=?,t1.address=?,t1.tel=?,t1.address=?,t.`name`=?,t.update_by=?,t1.user_id=?,t1.area_id=?,t1.tel=?,t1.address=? WHERE t.del=false AND t1.del=false AND (t.id = ?)")
val update: KtUpdateJoinWrapper<UserDO> = JoinWrappers.ktUpdate(UserDO::class.java)
ThreadLocalUtils.set("UPDATE `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) SET t.update_by=?, t.`name`=?,t1.address=?,t1.tel=?,t1.address=?,t.`name`=?,t.update_by=?,t1.user_id=?,t1.area_id=?,t1.tel=?,t1.address=? WHERE t.del=false AND t1.del=false AND (t.id = ?)")
val update: KtUpdateJoinWrapper<UserDO> = KtWrappers.update(UserDO::class.java)
.set(UserDO::name, "aaaaaa")
.set(AddressDO::address, "bbbbb")
.setUpdateEntity(address, user)
@ -1078,14 +1075,14 @@ class LambdaWrapperTest {
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.eq(OrderDO::id, 1)
try {
val join = userMapper!!.updateJoin(user1, update)
val join = userMapper!!.updateJoin(user1, update)
} catch (_: BadSqlGrammarException) {
//忽略异常 h2不支持连表删除
}
ThreadLocalUtils.set("UPDATE `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) SET t.pid=?, t.`name`=?, t.`json`=?, t.sex=?, t.head_img=?, t.create_time=?, t.address_id=?, t.address_id2=?, t.create_by=?, t.update_by=? WHERE t.del=false AND t1.del=false AND (t.id = ?)")
val update1: KtUpdateJoinWrapper<UserDO> = JoinWrappers.ktUpdate(UserDO::class.java)
ThreadLocalUtils.set("UPDATE `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) SET t.pid=?, t.`name`=?, t.`json`=?, t.sex=?, t.head_img=?, t.create_time=?, t.address_id=?, t.address_id2=?, t.create_by=?, t.update_by=? WHERE t.del=false AND t1.del=false AND (t.id = ?)")
val update1: KtUpdateJoinWrapper<UserDO> = KtWrappers.update(UserDO::class.java)
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.eq(OrderDO::id, 1)
try {
@ -1100,8 +1097,8 @@ class LambdaWrapperTest {
*/
@Test
fun sub() {
ThreadLocalUtils.set("SELECT ( SELECT st.id FROM `user` st WHERE st.del=false AND (st.id = t.id) limit 1 ) AS id FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) WHERE t.del=false AND t1.del=false AND (t.id <= ?)")
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
ThreadLocalUtils.set("SELECT ( SELECT st.id FROM `user` st WHERE st.del=false AND (st.id = t.id) limit 1 ) AS id FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) WHERE t.del=false AND t1.del=false AND (t.id <= ?)")
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.selectSub(
UserDO::class.java, { w ->
w.select(UserDO::id)
@ -1110,19 +1107,19 @@ class LambdaWrapperTest {
}, UserDO::id
)
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.le(UserDO::id, 100)
wrapper.list()
.le(UserDO::id, 100)
wrapper.list()
ThreadLocalUtils.set("SELECT ( SELECT st.id FROM address st WHERE st.del=false AND (st.id = t.id) limit 1 ) AS id FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) WHERE t.del=false AND t1.del=false AND (t.id <= ?)")
val wrapper1: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
ThreadLocalUtils.set("SELECT ( SELECT st.id FROM address st WHERE st.del=false AND (st.id = t.id) limit 1 ) AS id FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) WHERE t.del=false AND t1.del=false AND (t.id <= ?)")
val wrapper1: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.selectSub(AddressDO::class.java, { w ->
w.select(AddressDO::id)
.eq(AddressDO::id, UserDO::id)
.last("limit 1")
}, UserDO::id)
.leftJoin(AddressDO::class.java, AddressDO::userId, UserDO::id)
.le(UserDO::id, 100)
wrapper1.list()
.le(UserDO::id, 100)
wrapper1.list()
}
@ -1132,15 +1129,15 @@ class LambdaWrapperTest {
@Test
fun union() {
ThreadLocalUtils.set("SELECT t.id,t.pid,t.`name`,t.`json`,t.sex,t.head_img,t.create_time,t.address_id,t.address_id2,t.del,t.create_by,t.update_by FROM `user` t WHERE t.del=false UNION SELECT t.id,t.pid,t.`name`,t.`json`,t.sex,t.head_img,t.create_time,t.address_id,t.address_id2,t.del,t.create_by,t.update_by FROM `user` t WHERE t.del=false UNION SELECT t.id,t.pid,t.`name`,t.`json`,t.sex,t.head_img,t.create_time,t.address_id,t.address_id2,t.del,t.create_by,t.update_by FROM `user` t WHERE t.del=false")
val wrapper: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
.selectAll(UserDO::class.java)
val wrapper1: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
.selectAll(UserDO::class.java)
val wrapper2: KtLambdaWrapper<UserDO> = JoinWrappers.kt(UserDO::class.java)
.selectAll(UserDO::class.java)
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.selectAll(UserDO::class.java)
val wrapper1: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.selectAll(UserDO::class.java)
val wrapper2: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
.selectAll(UserDO::class.java)
wrapper.union(wrapper1, wrapper2)
wrapper.list()
println(1)
wrapper.union(wrapper1, wrapper2)
wrapper.list()
println(1)
}
}