添加缓存

This commit is contained in:
yulichang 2024-07-30 05:37:03 +08:00
parent 19d67fd1a8
commit 4f3f6dac3f
19 changed files with 212 additions and 162 deletions

View File

@ -77,4 +77,8 @@ public @interface Table {
*/
String tablesClassName() default "%S";
/**
* 是否缓存
*/
boolean cache() default true;
}

View File

@ -341,10 +341,10 @@ class AptWrapperTest {
" AND uc.del = false\n" +
" AND (ua.id <= ? AND ub.id >= ?)");
UserDtoCol tt = new UserDtoCol("tt");
UserDOCol ua = new UserDOCol("ua");
UserDOCol ub = new UserDOCol("ub");
UserDOCol uc = new UserDOCol("uc");
UserDtoCol tt = UserDtoCol.build("tt");
UserDOCol ua = UserDOCol.build("ua");
UserDOCol ub = UserDOCol.build("ub");
UserDOCol uc = UserDOCol.build("uc");
AptQueryWrapper<UserDto> wrapper = new AptQueryWrapper<>(tt)
.selectAll()
@ -387,10 +387,10 @@ class AptWrapperTest {
" AND uc.del = false\n" +
" AND (ua.head_img = tt.`name` AND tt.id = ua.id)");
UserDOCol ut = new UserDOCol("tt");
UserDOCol ua1 = new UserDOCol("ua");
UserDOCol ub1 = new UserDOCol("ub");
UserDOCol uc1 = new UserDOCol("uc");
UserDOCol ut = UserDOCol.build("tt");
UserDOCol ua1 = UserDOCol.build("ua");
UserDOCol ub1 = UserDOCol.build("ub");
UserDOCol uc1 = UserDOCol.build("uc");
AptQueryWrapper<UserDO> w = new AptQueryWrapper<>(ut)
.selectAll()
@ -440,8 +440,8 @@ class AptWrapperTest {
"WHERE t.del = false\n" +
" AND (t.id > ?)");
UserDOCol u = USERDO;
UserDOCol ua = new UserDOCol();
UserDOCol u = USERDO;
UserDOCol ua = UserDOCol.build();
//自连接
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
@ -472,9 +472,9 @@ class AptWrapperTest {
" LEFT JOIN `user` t2 ON (t2.id = t.update_by)\n" +
"WHERE (t2.id = t.update_by AND t.id = t1.id)");
UserDOCol uu = new UserDOCol();
UserDOCol uua = new UserDOCol();
UserDOCol uub = new UserDOCol();
UserDOCol uu = UserDOCol.build();
UserDOCol uua = UserDOCol.build();
UserDOCol uub = UserDOCol.build();
//关联一张表多次
AptQueryWrapper<UserDO> w = new AptQueryWrapper<>(uu)
@ -534,9 +534,9 @@ class AptWrapperTest {
"WHERE t.del = false\n" +
" AND (t1.id <= ? AND t.id <= ?)");
UserDOCol uuu = new UserDOCol();
UserDOCol uuua = new UserDOCol();
UserDOCol uuub = new UserDOCol();
UserDOCol uuu = UserDOCol.build();
UserDOCol uuua = UserDOCol.build();
UserDOCol uuub = UserDOCol.build();
AptQueryWrapper<UserDO> wrapper1 = new AptQueryWrapper<>(uuu)
.disableSubLogicDel()
@ -557,20 +557,20 @@ class AptWrapperTest {
*/
@Test
void testLogicDel() {
UserDOCol u1 = new UserDOCol();
UserDOCol u1 = UserDOCol.build();
List<UserDTO> l1 = userMapper.selectJoinList(UserDTO.class, new AptQueryWrapper<>(u1));
assert l1.size() == 14;
UserDOCol u2 = new UserDOCol();
AddressDOCol addr2 = new AddressDOCol();
UserDOCol u2 = UserDOCol.build();
AddressDOCol addr2 = AddressDOCol.build();
List<UserDTO> l2 = userMapper.selectJoinList(UserDTO.class, new AptQueryWrapper<>(u2)
.selectAll()
.select(addr2.address)
.leftJoin(addr2, addr2.userId, u2.id));
assert l2.size() == 10;
UserDOCol u3 = new UserDOCol();
AddressDOCol addr3 = new AddressDOCol();
UserDOCol u3 = UserDOCol.build();
AddressDOCol addr3 = AddressDOCol.build();
List<UserDTO> l3 = userMapper.selectJoinList(UserDTO.class, new AptQueryWrapper<>(u3)
.disableSubLogicDel()
.selectAll()
@ -578,8 +578,8 @@ class AptWrapperTest {
.leftJoin(addr3, addr3.userId, u3.id));
assert l3.size() == 14 && l3.get(0).getAddressList().size() == 9;
UserDOCol u4 = new UserDOCol();
AddressDOCol addr4 = new AddressDOCol();
UserDOCol u4 = UserDOCol.build();
AddressDOCol addr4 = AddressDOCol.build();
List<UserDTO> l4 = userMapper.selectJoinList(UserDTO.class, new AptQueryWrapper<>(u4)
.disableSubLogicDel()
.selectAll()
@ -595,8 +595,8 @@ class AptWrapperTest {
*/
@Test
void testAlias() {
UserDOCol u = new UserDOCol();
UserDOCol uu = new UserDOCol();
UserDOCol u = UserDOCol.build();
UserDOCol uu = UserDOCol.build();
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
// .disableSubLogicDel()//关闭副表逻辑删除
// .disableLogicDel()//关闭主表逻辑删除
@ -616,8 +616,8 @@ class AptWrapperTest {
void testObj() {
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");
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
.distinct()
.select(u.id)
@ -651,8 +651,8 @@ class AptWrapperTest {
"WHERE t.del = false\n" +
" AND aa.del = false");
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol("aa");
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build("aa");
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
// .disableLogicDel()//关闭主表逻辑删除
.selectAll()
@ -666,9 +666,9 @@ class AptWrapperTest {
@Test
void testLabel() {
UserDOCol u = new UserDOCol();
AddressDOCol addr1 = new AddressDOCol("t1");
AddressDOCol addr2 = new AddressDOCol("t2");
UserDOCol u = UserDOCol.build();
AddressDOCol addr1 = AddressDOCol.build("t1");
AddressDOCol addr2 = AddressDOCol.build("t2");
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
.disableSubLogicDel()
@ -690,9 +690,9 @@ class AptWrapperTest {
*/
@Test
void test1() {
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
AreaDOCol ar = new AreaDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
AreaDOCol ar = AreaDOCol.build();
Page<UserDTO> page = new Page<>(1, 10);
page.setSearchCount(false);
@ -735,8 +735,8 @@ class AptWrapperTest {
"LEFT JOIN address t1 ON (t.id = t1.user_id AND t.id = t1.user_id) WHERE t.del = false AND t1.del = false AND " +
"(t.id = ? AND (t.head_img = ? OR t1.user_id = ?) AND t.id = ?) ) TMP WHERE ROWNUM <=?) WHERE ROW_ID > ?");
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
IPage<UserDTO> page = userMapper.selectJoinPage(new Page<>(1, 10), UserDTO.class, JoinWrappers.apt(u)
.selectAll()
@ -758,8 +758,8 @@ class AptWrapperTest {
*/
@Test
void test4() {
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
.selectSum(u.id)
@ -777,7 +777,7 @@ class AptWrapperTest {
@SneakyThrows
void test8() throws BadSqlGrammarException {
ThreadLocalUtils.set("SELECT t.`name` FROM `user` t WHERE t.del=false AND (t.`name` = ?)");
UserDOCol u = new UserDOCol();
UserDOCol u = UserDOCol.build();
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
.select(u.name)
.eq(u.name, "ref");
@ -790,8 +790,8 @@ class AptWrapperTest {
*/
@Test
void test7() {
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
List<Map<String, Object>> list = userMapper.selectJoinMaps(JoinWrappers.apt(u)
.selectAll()
.select(addr.address)
@ -814,7 +814,7 @@ class AptWrapperTest {
"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 AND (t.id > ? AND t.id < ?)",
"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 < ?) ");
UserDOCol u = new UserDOCol();
UserDOCol u = UserDOCol.build();
List<UserDO> dos1 = userMapper.selectList(new AptQueryWrapper<>(u)
.gt(u.id, 3)
.lt(u.id, 8));
@ -826,7 +826,7 @@ class AptWrapperTest {
*/
@Test
void testGeneric() {
AddressDOCol addr = new AddressDOCol();
AddressDOCol addr = AddressDOCol.build();
AptQueryWrapper<AddressDO> wrapper = new AptQueryWrapper<>(addr)
.selectAll()
.le(addr.id, 10000)
@ -845,18 +845,18 @@ class AptWrapperTest {
"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");
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
AreaDOCol ar = new AreaDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
AreaDOCol ar = AreaDOCol.build();
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
.leftJoin(addr, addr.userId, u.id)
.leftJoin(ar, ar.id, addr.areaId);
Object integer = 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");
UserDOCol u1 = new UserDOCol();
AddressDOCol addr1 = new AddressDOCol();
AreaDOCol ar1 = new AreaDOCol();
UserDOCol u1 = UserDOCol.build();
AddressDOCol addr1 = AddressDOCol.build();
AreaDOCol ar1 = AreaDOCol.build();
AptQueryWrapper<UserDO> wrapper1 = new AptQueryWrapper<>(u1)
.leftJoin(addr1, addr1.userId, u1.id)
.leftJoin(ar1, ar1.id, addr1.areaId);
@ -872,9 +872,9 @@ class AptWrapperTest {
ThreadLocalUtils.set("SELECT t.id FROM (SELECT * FROM `user`) t LEFT JOIN (SELECT * FROM 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 AND (t.id <= ?) ORDER BY t.id DESC");
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
AreaDOCol ar = new AreaDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
AreaDOCol ar = AreaDOCol.build();
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
.select(u.id)
@ -925,9 +925,9 @@ class AptWrapperTest {
"WHERE t.del = false\n" +
" AND (t.id <= ?)\n" +
"ORDER BY t.id DESC\n");
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
AreaDOCol ar = new AreaDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
AreaDOCol ar = AreaDOCol.build();
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
.logicDelToOn()
.selectAll()
@ -978,9 +978,9 @@ class AptWrapperTest {
"WHERE t.del = false\n" +
" AND (t.id <= ?)\n" +
"ORDER BY t.id DESC\n");
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
AreaDOCol ar = new AreaDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
AreaDOCol ar = AreaDOCol.build();
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
.logicDelToOn()
@ -1001,9 +1001,9 @@ class AptWrapperTest {
@Test
void joinRandomMap() {
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
AreaDOCol ar = new AreaDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
AreaDOCol ar = AreaDOCol.build();
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
.logicDelToOn()
.selectAll()
@ -1028,9 +1028,9 @@ class AptWrapperTest {
@Test
void 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");
UserDOCol u = new UserDOCol();
UserDOCol u1 = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
UserDOCol u = UserDOCol.build();
UserDOCol u1 = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
AptQueryWrapper<AddressDO> wrapper = JoinWrappers.apt(addr)
.selectAll()
.leftJoin(u, u.addressId, addr.id)
@ -1045,8 +1045,8 @@ class AptWrapperTest {
@Test
void 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)");
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
.selectAll()
.leftJoin(addr, addr.userId, u.id)
@ -1062,8 +1062,8 @@ class AptWrapperTest {
void 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)");
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol("aaa");
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build("aaa");
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
.selectAll()
.leftJoin(addr, addr.userId, u.id)
@ -1071,8 +1071,6 @@ class AptWrapperTest {
.eq(addr.id, addr.id);
List<UserDO> addressDOS = wrapper.list();
}
//执行sql: 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 = aaa.id) WHERE t.del = false AND aaa.del = false AND (aaa.id = t.id AND aaa.id = aaa.id)
//预期sql: 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)
/**
* 同一个类字段比较
@ -1087,7 +1085,7 @@ class AptWrapperTest {
ThreadLocalUtils.set("SELECT id,user_id,name FROM order_t t",
"SELECT id,user_id,name FROM order_t t");
}
OrderDOCol o = new OrderDOCol();
OrderDOCol o = OrderDOCol.build();
AptQueryWrapper<OrderDO> wrapper = JoinWrappers.apt(o);
List<OrderDO> list = wrapper.list();
@ -1099,8 +1097,8 @@ class AptWrapperTest {
"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");
}
UserDOCol u = new UserDOCol();
OrderDOCol o1 = new OrderDOCol();
UserDOCol u = UserDOCol.build();
OrderDOCol o1 = OrderDOCol.build();
AptQueryWrapper<OrderDO> w = JoinWrappers.apt(o1)
.selectAll()
.selectAs(u.name, OrderDO::getUserName)
@ -1113,8 +1111,8 @@ class AptWrapperTest {
*/
@Test
void checkOrderBy() {
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
.selectAll()
.leftJoin(addr, addr.userId, u.id)

View File

@ -1,13 +1,11 @@
package com.github.yulichang.test.join.apt.unit;
import com.github.yulichang.test.join.entity.AddressDO;
import com.github.yulichang.test.join.entity.UserDO;
import com.github.yulichang.test.join.entity.apt.AddressDOCol;
import com.github.yulichang.test.join.entity.apt.UserDOCol;
import com.github.yulichang.test.util.Reset;
import com.github.yulichang.test.util.ThreadLocalUtils;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.segments.Fun;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@ -31,8 +29,8 @@ public class ApplyFuncTest {
"LEFT JOIN address t1 ON (t1.user_id = t.id) WHERE t.del = false AND t1.del = false " +
"AND (concat(t.id, t1.user_id, ?) IS NOT NULL " +
"AND concat(t.id, t1.user_id, ?) IS NOT NULL)");
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
List<UserDO> list = JoinWrappers.apt(u)
.selectAll()
@ -49,8 +47,8 @@ public class ApplyFuncTest {
"AND (concat(t.id, t1.user_id, ?) IS NOT NULL " +
"AND concat(t.id, t1.user_id, ?) IS NOT NULL)");
UserDOCol u1 = new UserDOCol();
AddressDOCol addr1 = new AddressDOCol();
UserDOCol u1 = UserDOCol.build();
AddressDOCol addr1 = AddressDOCol.build();
List<UserDO> list1 = JoinWrappers.apt(u1)
.selectAll(u1, u1.id)

View File

@ -5,7 +5,6 @@ import com.github.yulichang.test.join.entity.apt.UserDOCol;
import com.github.yulichang.test.util.Reset;
import com.github.yulichang.test.util.ThreadLocalUtils;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.github.yulichang.wrapper.apt.AptQueryWrapper;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@ -24,7 +23,7 @@ public class AroundTest {
void around() {
ThreadLocalUtils.set("SELECT * FROM (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) tmp");
UserDOCol u = new UserDOCol();
UserDOCol u = UserDOCol.build();
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
.around("select * from (", ") tmp");
wrapper.list().forEach(System.out::println);

View File

@ -1,7 +1,6 @@
package com.github.yulichang.test.join.apt.unit;
import com.github.yulichang.test.join.entity.UserTenantaDO;
import com.github.yulichang.test.join.entity.apt.UserTenantDOCol;
import com.github.yulichang.test.join.entity.apt.UserTenantaDOCol;
import com.github.yulichang.toolkit.JoinWrappers;
import org.junit.jupiter.api.Test;
@ -14,7 +13,7 @@ public class ChineseFieldTest {
@Test
void chineseField() {
UserTenantaDOCol ut = new UserTenantaDOCol();
UserTenantaDOCol ut = UserTenantaDOCol.build();
List<UserTenantaDO> list = JoinWrappers.apt(ut).list();
assert list.get(0).getDetail() != null;
list.forEach(System.out::println);

View File

@ -30,6 +30,7 @@ public class CustomWrapperTest {
//自定义wrapper扩展
@SuppressWarnings("unused")
public static class CWrapper<T> extends AptQueryWrapper<T> {
public CWrapper(BaseColumn<T> baseColumn) {
@ -54,7 +55,7 @@ public class CustomWrapperTest {
@Test
void testWrapperCustomer() {
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 AND (t.id = ?)");
UserDOCol u = new UserDOCol();
UserDOCol u = UserDOCol.build();
CWrapper<UserDO> wrapper = new CWrapper<>(u)
.selectAll()
.toChildren(CWrapper::toCWrapper)
@ -62,7 +63,7 @@ public class CustomWrapperTest {
List<UserDO> dos = userMapper.selectList(wrapper);
dos.forEach(System.out::println);
UserDOCol u1 = new UserDOCol();
UserDOCol u1 = UserDOCol.build();
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");
CWrapper<UserDO> wrapper1 = new CWrapper<>(u1)
.selectAll()

View File

@ -1,6 +1,5 @@
package com.github.yulichang.test.join.apt.unit;
import com.github.yulichang.test.join.entity.UserDO;
import com.github.yulichang.test.join.entity.apt.UserDOCol;
import com.github.yulichang.test.util.Reset;
import com.github.yulichang.test.util.ThreadLocalUtils;
@ -22,12 +21,12 @@ public class EqSqlTest {
void eqSql() {
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 AND (t.id = (SELECT id FROM `user` WHERE id = 1))");
UserDOCol u = new UserDOCol();
UserDOCol u = UserDOCol.build();
JoinWrappers.apt(u).eqSql(u.id, "select id from `user` where id = 1").list();
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 AND (t.id = (SELECT id FROM `user` WHERE id = 1))");
UserDOCol u1 = new UserDOCol();
UserDOCol u1 = UserDOCol.build();
JoinWrappers.apt(u1).eqSql("t.id", "select id from `user` where id = 1").list();
}

View File

@ -34,8 +34,8 @@ public class FieldAliasTest {
@Test
void fieldAlias() {
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
List<UserDO> list = userMapper.selectList(JoinWrappers.apt(u)
.selectAll()
.leftJoin(addr, addr.userId, u.id));
@ -48,8 +48,8 @@ public class FieldAliasTest {
@Test
void fieldAlias1() {
UserTenantDOCol ut = new UserTenantDOCol();
UserDOCol u = new UserDOCol();
UserTenantDOCol ut = UserTenantDOCol.build();
UserDOCol u = UserDOCol.build();
AptQueryWrapper<UserTenantDO> wrapper = JoinWrappers.apt(ut)
.selectAll()
.leftJoin(u, u.id, ut.uuid);

View File

@ -28,8 +28,8 @@ public class FieldNameTest {
@Test
void testFieldName() {
AreaDOCol ar = new AreaDOCol();
UserDtoCol ud = new UserDtoCol();
AreaDOCol ar = AreaDOCol.build();
UserDtoCol ud = UserDtoCol.build();
List<AreaDO> list = areaMapper.selectJoinList(AreaDO.class, JoinWrappers.apt(ar)
.select(ar.Postcode)
.leftJoin(ud, ud.id, ar.id));
@ -39,8 +39,8 @@ public class FieldNameTest {
@Test
void testFieldName1() {
AreaDOCol ar = new AreaDOCol();
UserDtoCol ud = new UserDtoCol();
AreaDOCol ar = AreaDOCol.build();
UserDtoCol ud = UserDtoCol.build();
List<AreaDTO> list = areaMapper.selectJoinList(AreaDTO.class, JoinWrappers.apt(ar)
.selectAs(ar.Postcode, AreaDTO::getPostcode)
.leftJoin(ud, ud.id, ar.id));

View File

@ -6,7 +6,6 @@ import com.github.yulichang.test.join.entity.apt.UserDOCol;
import com.github.yulichang.test.util.Reset;
import com.github.yulichang.test.util.ThreadLocalUtils;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.github.yulichang.wrapper.apt.AptQueryWrapper;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@ -45,7 +44,7 @@ public class IfExistsTest {
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 AND (t.id = ? AND t.head_img = ? AND t.`name` = ?)");
UserDOCol u = new UserDOCol();
UserDOCol u = UserDOCol.build();
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
.selectAll()
.eqIfExists(u.id, 1)
@ -59,7 +58,7 @@ public class IfExistsTest {
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 AND (t.id = ? AND t.`name` = ?)");
UserDOCol u1 = new UserDOCol();
UserDOCol u1 = UserDOCol.build();
AptQueryWrapper<UserDO> wrapper1 = JoinWrappers.apt(u1)
.selectAll()
.setIfExists(IfExistsEnum.NOT_BLANK)
@ -74,7 +73,7 @@ public class IfExistsTest {
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 AND (t.id = ? AND t.`name` = ? AND t.head_img = ? AND t.`name` = ?)");
UserDOCol u2 = new UserDOCol();
UserDOCol u2 = UserDOCol.build();
AptQueryWrapper<UserDO> wrapper2 = JoinWrappers.apt(u2)
.selectAll()
.setIfExists(o -> true)

View File

@ -5,7 +5,6 @@ import com.github.yulichang.test.join.entity.apt.UserDOCol;
import com.github.yulichang.test.util.Reset;
import com.github.yulichang.test.util.ThreadLocalUtils;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.github.yulichang.wrapper.apt.AptQueryWrapper;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@ -25,7 +24,7 @@ public class NotLikeLeftRightTest {
void notLikeLeftRight() {
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 AND (t.`name` NOT LIKE ?)");
UserDOCol u = new UserDOCol();
UserDOCol u = UserDOCol.build();
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
.selectAll()
.notLikeLeft(u.name, "aa");
@ -34,7 +33,7 @@ public class NotLikeLeftRightTest {
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 AND (t.`name` NOT LIKE ?)");
UserDOCol u1 = new UserDOCol();
UserDOCol u1 = UserDOCol.build();
AptQueryWrapper<UserDO> wrapper1 = JoinWrappers.apt(u1)
.selectAll()
.notLikeRight(u1.name, "aa");

View File

@ -31,7 +31,7 @@ public class OrderByTest {
void orderBy() {
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 AND (t.id = ?) ORDER BY t.id ASC, t.`name` ASC, t.pid ASC");
UserDOCol u = new UserDOCol();
UserDOCol u = UserDOCol.build();
List<Column> columList = Arrays.asList(u.id, u.name, u.pid);
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
@ -48,7 +48,7 @@ public class OrderByTest {
void orderBy1() {
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 AND (t.id = ?) GROUP BY t.id, t.`name`, t.pid");
UserDOCol u = new UserDOCol();
UserDOCol u = UserDOCol.build();
List<Column> columList = Arrays.asList(u.id, u.name, u.pid);
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
@ -64,8 +64,8 @@ public class OrderByTest {
@Test
void orderBy2() {
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
.selectAll()

View File

@ -30,10 +30,10 @@ public class SelectSubTest {
@Test
void sub() {
ThreadLocalUtils.set("SELECT (SELECT st.id FROM `user` st WHERE st.del = false AND (st.id = t.id AND st.id = ?) LIMIT 1) AS id, (SELECT st.id FROM `user` st WHERE st.del = false AND (st.id = t.id AND st.id = ?) LIMIT 1) AS name FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) WHERE t.del = false AND t1.del = false AND (t.id <= ?)");
UserDOCol u = new UserDOCol();
UserDOCol sb = new UserDOCol();
UserDOCol sb2 = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
UserDOCol u = UserDOCol.build();
UserDOCol sb = UserDOCol.build();
UserDOCol sb2 = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
.selectSub(sb, w -> w.select(sb.id)
@ -48,9 +48,9 @@ public class SelectSubTest {
.le(u.id, 100);
wrapper.list();
UserDOCol u1 = new UserDOCol();
AddressDOCol addr1 = new AddressDOCol();
AreaDOCol area = new AreaDOCol();
UserDOCol u1 = UserDOCol.build();
AddressDOCol addr1 = AddressDOCol.build();
AreaDOCol area = AreaDOCol.build();
ThreadLocalUtils.set("SELECT (SELECT st.id FROM area st WHERE st.del = false AND (st.id = t1.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 <= ?)");
AptQueryWrapper<UserDO> wrapper1 = JoinWrappers.apt(u1)
@ -65,9 +65,9 @@ public class SelectSubTest {
@Test
void sub1() {
ThreadLocalUtils.set("SELECT (SELECT st.id FROM `area` st WHERE st.del = false AND (st.id = t1.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 <= ?)");
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
AreaDOCol ar = new AreaDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
AreaDOCol ar = AreaDOCol.build();
AptQueryWrapper<UserDO> wrapper1 = JoinWrappers.apt(u)
.selectSub(ar, w -> w.select(ar.id)

View File

@ -33,8 +33,8 @@ public class StringColumTest {
ThreadLocalUtils.set("SELECT (SELECT id FROM `user` u WHERE u.id = t.id) id, t.`name` AS PName, t.`name` PName, t.`name`," +
" (SELECT id FROM `user` u WHERE u.id = t.id), t1.id AS joina_id, t1.user_id, t1.area_id, t1.tel, " +
"t1.address, t1.del FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) WHERE t.del = false AND t1.del = false");
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
List<UserDTO> l3 = userMapper.selectJoinList(UserDTO.class, new AptQueryWrapper<>(u)
.select("(select id from `user` u where u.id = t.id) id")
.select("t.`name` as PName")

View File

@ -38,10 +38,10 @@ public class TableAliasTest {
"LEFT JOIN area area1 ON (area1.id = addr1.area_id) " +
"WHERE t.del = false AND addr1.del = false AND addr2.del = false AND area1.del = false " +
"GROUP BY t.id");
UserDOCol u = new UserDOCol();
AddressDOCol addr1 = new AddressDOCol("addr1");
AddressDOCol addr2 = new AddressDOCol("addr2");
AreaDOCol area1 = new AreaDOCol("area1");
UserDOCol u = UserDOCol.build();
AddressDOCol addr1 = AddressDOCol.build("addr1");
AddressDOCol addr2 = AddressDOCol.build("addr2");
AreaDOCol area1 = AreaDOCol.build("area1");
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
.selectAll()
@ -63,10 +63,10 @@ public class TableAliasTest {
"WHERE t.del = false AND addr1.del = false AND addr2.del = false AND area1.del = false " +
"GROUP BY t.id,addr1.id ORDER BY addr1.id DESC");
UserDOCol u = new UserDOCol();
AddressDOCol addr1 = new AddressDOCol("addr1");
AddressDOCol addr2 = new AddressDOCol("addr2");
AreaDOCol area1 = new AreaDOCol("area1");
UserDOCol u = UserDOCol.build();
AddressDOCol addr1 = AddressDOCol.build("addr1");
AddressDOCol addr2 = AddressDOCol.build("addr2");
AreaDOCol area1 = AreaDOCol.build("area1");
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
.selectAll()
@ -90,10 +90,10 @@ public class TableAliasTest {
"LEFT JOIN area area1 ON (area1.id = addr2.area_id) WHERE t.del = false AND addr1.del = false AND addr2.del = false AND area1.del = false " +
"AND (addr1.id = ? AND addr2.id = ? AND addr1.id = ?)");
UserDOCol u = new UserDOCol();
AddressDOCol addr1 = new AddressDOCol("addr1");
AddressDOCol addr2 = new AddressDOCol("addr2");
AreaDOCol area1 = new AreaDOCol("area1");
UserDOCol u = UserDOCol.build();
AddressDOCol addr1 = AddressDOCol.build("addr1");
AddressDOCol addr2 = AddressDOCol.build("addr2");
AreaDOCol area1 = AreaDOCol.build("area1");
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
.selectAll()
@ -113,7 +113,7 @@ public class TableAliasTest {
ThreadLocalUtils.set("SELECT aaa.id, aaa.pid, aaa.`name`, aaa.`json`, aaa.sex, aaa.head_img, aaa.create_time, " +
"aaa.address_id, aaa.address_id2, aaa.del, aaa.create_by, aaa.update_by FROM `user` aaa WHERE aaa.`name` = ? AND aaa.del = false");
UserDOCol u = new UserDOCol("aaa");
UserDOCol u = UserDOCol.build("aaa");
UserDO userDO = new UserDO();
userDO.setName("aaa");

View File

@ -28,10 +28,10 @@ public class UnionTest {
void unionAll1() {
ThreadLocalUtils.set("SELECT t.id FROM `user` t WHERE t.del = false AND (t.id = ?) UNION ALL SELECT t.id FROM address t WHERE (t.id = ?) UNION ALL SELECT (SELECT st.id FROM area st WHERE st.del = false AND (st.id = ? AND (st.id = ?))) AS id FROM area t WHERE t.del = false AND (t.id = ? AND (t.id = ?))");
UserDOCol u = new UserDOCol();
AddressDOCol addr = new AddressDOCol();
AreaDOCol area = new AreaDOCol();
AreaDOCol areaSb = new AreaDOCol();
UserDOCol u = UserDOCol.build();
AddressDOCol addr = AddressDOCol.build();
AreaDOCol area = AreaDOCol.build();
AreaDOCol areaSb = AreaDOCol.build();
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
.select(u.id)

View File

@ -21,6 +21,7 @@ import javax.tools.Diagnostic;
import javax.tools.JavaFileObject;
import java.io.Writer;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Consumer;
import java.util.stream.Collectors;
@ -114,20 +115,25 @@ public class EntityProcessor extends AbstractProcessor {
tableInfo.setFields(fieldInfos);
StringBuilderHelper content = new StringBuilderHelper()
StringBuilderHelper content = new StringBuilderHelper(tableInfo)
.addPackage(tableInfo.getTagClassPackage())
.newLine()
.addImport(BaseColumn.class.getName())
.addImport(Column.class.getName())
.addImport(tableInfo.getClassName())
.addImport(true, BaseColumn.class.getName())
.addImport(true, Column.class.getName())
.addImport(true, tableInfo.getClassName())
.newLine(tableInfo.isCache())
.addImport(tableInfo.isCache(), Map.class.getName())
.addImport(tableInfo.isCache(), Objects.class.getName())
.addImport(tableInfo.isCache(), ConcurrentHashMap.class.getName())
.newLine()
.addClass(tableInfo.getClassComment(), tableInfo.getTagClassName(),
BaseColumn.class.getSimpleName() + "<" + tableInfo.getSimpleClassName() + ">",
c -> c
.addConstructor(tableInfo)
.addFields(tableInfo)
.addMethod(tableInfo)
.addBuild(tableInfo)
.addConstructor()
.addFields()
.addMethod()
.addBuild()
.addCacheClass()
);
writerFile(tableInfo.getTagClassPackage() + "." + tableInfo.getTagClassName(), content.getContent());
return tableInfo;
@ -142,7 +148,7 @@ public class EntityProcessor extends AbstractProcessor {
content.addPackage(tagPackage);
content.newLine();
// import
tableInfos.forEach(tableInfo -> content.addImport(tableInfo.getTagClassPackage() + "." + tableInfo.getTagClassName()));
tableInfos.forEach(tableInfo -> content.addImport(true, tableInfo.getTagClassPackage() + "." + tableInfo.getTagClassName()));
content.newLine();
// class
String tables = "Tables";
@ -172,14 +178,24 @@ public class EntityProcessor extends AbstractProcessor {
@SuppressWarnings("UnusedReturnValue")
public static class StringBuilderHelper {
private final StringBuilder sb = new StringBuilder();
private TableInfo tableInfo;
public StringBuilderHelper() {
}
public StringBuilderHelper(TableInfo tableInfo) {
this.tableInfo = tableInfo;
}
public StringBuilderHelper addPackage(String packageName) {
sb.append("package ").append(packageName).append(";\n");
return this;
}
public StringBuilderHelper addImport(String importName) {
sb.append("import ").append(importName).append(";\n");
public StringBuilderHelper addImport(boolean cond, String importName) {
if (cond) {
sb.append("import ").append(importName).append(";\n");
}
return this;
}
@ -196,7 +212,7 @@ public class EntityProcessor extends AbstractProcessor {
return this;
}
public StringBuilderHelper addConstructor(TableInfo tableInfo) {
public StringBuilderHelper addConstructor() {
// 无参构造
newLine();
sb.append(String.format("\tpublic %s() {\n\t}\n", tableInfo.getTagClassName()));
@ -218,7 +234,7 @@ public class EntityProcessor extends AbstractProcessor {
return this;
}
public StringBuilderHelper addFields(TableInfo tableInfo) {
public StringBuilderHelper addFields() {
tableInfo.getFields().forEach(fieldInfo -> {
addComment("\t", fieldInfo.getComment());
sb.append(String.format("\tpublic final Column %s = new Column(this, \"%s\");\n",
@ -231,7 +247,7 @@ public class EntityProcessor extends AbstractProcessor {
public StringBuilderHelper addTablesFields(List<TableInfo> tableInfos) {
tableInfos.forEach(tableInfo -> {
addComment("\t", tableInfo.getClassComment());
sb.append(String.format("\tpublic static final %s %s = new %s();\n",
sb.append(String.format("\tpublic static final %s %s = %s.build();\n",
tableInfo.getTagClassName(),
String.format(tableInfo.getTagTablesName(), tableInfo.getSimpleClassName()),
tableInfo.getTagClassName()));
@ -240,7 +256,7 @@ public class EntityProcessor extends AbstractProcessor {
return this;
}
public StringBuilderHelper addMethod(TableInfo tableInfo) {
public StringBuilderHelper addMethod() {
sb.append("\t@Override\n" +
"\tpublic Class<").append(tableInfo.getSimpleClassName()).append("> getColumnClass() {\n")
.append("\t\treturn ").append(tableInfo.getSimpleClassName()).append(".class;\n")
@ -249,18 +265,33 @@ public class EntityProcessor extends AbstractProcessor {
return this;
}
public StringBuilderHelper addBuild(TableInfo tableInfo) {
sb.append("\tpublic static ").append(tableInfo.getTagClassName()).append(" build() {\n")
.append("\t\treturn new ").append(tableInfo.getTagClassName()).append("();\n")
.append("\t}\n");
public StringBuilderHelper addBuild() {
sb.append("\tpublic static ").append(tableInfo.getTagClassName()).append(" build() {\n");
sb.append("\t\treturn new ").append(tableInfo.getTagClassName()).append("();\n");
sb.append("\t}\n");
newLine();
sb.append("\tpublic static ").append(tableInfo.getTagClassName()).append(" build(String alias) {\n")
.append("\t\treturn new ").append(tableInfo.getTagClassName()).append("(alias);\n")
.append("\t}\n");
sb.append("\tpublic static ").append(tableInfo.getTagClassName()).append(" build(String alias) {\n");
if (tableInfo.isCache()) {
sb.append("\t\tObjects.requireNonNull(alias);\n");
sb.append("\t\treturn Cache.CACHE.computeIfAbsent(alias, key -> new ").append(tableInfo.getTagClassName()).append("(key));\n");
} else {
sb.append("\t\treturn new ").append(tableInfo.getTagClassName()).append("(alias);\n");
}
sb.append("\t}\n");
newLine();
return this;
}
public StringBuilderHelper addCacheClass() {
if (tableInfo.isCache()) {
sb.append("\tpublic static class Cache {\n")
.append("\t\tprivate static final Map<String, ").append(tableInfo.getTagClassName()).append("> CACHE = new ConcurrentHashMap<>();\n")
.append("\t}\n");
newLine();
}
return this;
}
private StringBuilderHelper addComment(String prefix, String comment) {
if (StringUtil.isNotEmpty(comment)) {
sb.append(prefix).append("/**\n");
@ -276,6 +307,13 @@ public class EntityProcessor extends AbstractProcessor {
return this;
}
public StringBuilderHelper newLine(boolean cond) {
if (cond) {
sb.append("\n");
}
return this;
}
public String getContent() {
return sb.toString();
}

View File

@ -22,6 +22,7 @@ public class Conf {
private boolean genTables = true;
private String tablasClassPackage = "%s.tables";
private String tablesClassName = "%S";
private boolean cache = true;
private boolean initFlag = false;
@ -32,6 +33,7 @@ public class Conf {
this.tablasClassPackage = conf.tablasClassPackage;
this.tablesClassName = conf.tablesClassName;
this.initFlag = conf.initFlag;
this.cache = conf.cache;
}
@ -73,6 +75,7 @@ public class Conf {
this.genTables = Boolean.parseBoolean(properties.getOrDefault("genTables", Boolean.toString(this.genTables)).toString());
this.tablasClassPackage = properties.getOrDefault("tablasClassPackage", this.tablasClassPackage).toString();
this.tablesClassName = properties.getOrDefault("tablesClassName", this.tablesClassName).toString();
this.cache = Boolean.parseBoolean(properties.getOrDefault("cache", this.cache).toString());
}
public static Conf getConf(Conf globalConf, Table table, Collection<String> keys) {
@ -124,12 +127,21 @@ public class Conf {
this.tablesClassName = tablesClassName;
}
public boolean isCache() {
return cache;
}
public void setCache(boolean cache) {
this.cache = cache;
}
public enum ConfItem {
className("value", Table::value, (c, v) -> c.setClassName(v.toString())),
packageName("classPackage", Table::classPackage, (c, v) -> c.setClassPackage(v.toString())),
genTables("genTables", Table::genTables, (c, v) -> c.setGenTables((boolean) v)),
tablasPackageName("tablesClassPackage", Table::tablesClassPackage, (c, v) -> c.setTablasClassPackage(v.toString())),
tablesName("tablesClassName", Table::tablesClassName, (c, v) -> c.setTablesClassName(v.toString()));
tablesName("tablesClassName", Table::tablesClassName, (c, v) -> c.setTablesClassName(v.toString())),
cache("cache", Table::cache, (c, v) -> c.setCache((boolean) v));
private final String action;

View File

@ -126,6 +126,10 @@ public class TableInfo {
return this.conf.isGenTables();
}
public boolean isCache() {
return this.conf.isCache();
}
public Set<FieldInfo> getFields() {
return fields;
}