mirror of
https://gitee.com/best_handsome/mybatis-plus-join
synced 2025-07-25 00:00:12 +08:00
添加缓存
This commit is contained in:
parent
19d67fd1a8
commit
4f3f6dac3f
@ -77,4 +77,8 @@ public @interface Table {
|
|||||||
*/
|
*/
|
||||||
String tablesClassName() default "%S";
|
String tablesClassName() default "%S";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否缓存
|
||||||
|
*/
|
||||||
|
boolean cache() default true;
|
||||||
}
|
}
|
@ -341,10 +341,10 @@ class AptWrapperTest {
|
|||||||
" AND uc.del = false\n" +
|
" AND uc.del = false\n" +
|
||||||
" AND (ua.id <= ? AND ub.id >= ?)");
|
" AND (ua.id <= ? AND ub.id >= ?)");
|
||||||
|
|
||||||
UserDtoCol tt = new UserDtoCol("tt");
|
UserDtoCol tt = UserDtoCol.build("tt");
|
||||||
UserDOCol ua = new UserDOCol("ua");
|
UserDOCol ua = UserDOCol.build("ua");
|
||||||
UserDOCol ub = new UserDOCol("ub");
|
UserDOCol ub = UserDOCol.build("ub");
|
||||||
UserDOCol uc = new UserDOCol("uc");
|
UserDOCol uc = UserDOCol.build("uc");
|
||||||
|
|
||||||
AptQueryWrapper<UserDto> wrapper = new AptQueryWrapper<>(tt)
|
AptQueryWrapper<UserDto> wrapper = new AptQueryWrapper<>(tt)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
@ -387,10 +387,10 @@ class AptWrapperTest {
|
|||||||
" AND uc.del = false\n" +
|
" AND uc.del = false\n" +
|
||||||
" AND (ua.head_img = tt.`name` AND tt.id = ua.id)");
|
" AND (ua.head_img = tt.`name` AND tt.id = ua.id)");
|
||||||
|
|
||||||
UserDOCol ut = new UserDOCol("tt");
|
UserDOCol ut = UserDOCol.build("tt");
|
||||||
UserDOCol ua1 = new UserDOCol("ua");
|
UserDOCol ua1 = UserDOCol.build("ua");
|
||||||
UserDOCol ub1 = new UserDOCol("ub");
|
UserDOCol ub1 = UserDOCol.build("ub");
|
||||||
UserDOCol uc1 = new UserDOCol("uc");
|
UserDOCol uc1 = UserDOCol.build("uc");
|
||||||
|
|
||||||
AptQueryWrapper<UserDO> w = new AptQueryWrapper<>(ut)
|
AptQueryWrapper<UserDO> w = new AptQueryWrapper<>(ut)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
@ -440,8 +440,8 @@ class AptWrapperTest {
|
|||||||
"WHERE t.del = false\n" +
|
"WHERE t.del = false\n" +
|
||||||
" AND (t.id > ?)");
|
" AND (t.id > ?)");
|
||||||
|
|
||||||
UserDOCol u = USERDO;
|
UserDOCol u = USERDO;
|
||||||
UserDOCol ua = new UserDOCol();
|
UserDOCol ua = UserDOCol.build();
|
||||||
|
|
||||||
//自连接
|
//自连接
|
||||||
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
||||||
@ -472,9 +472,9 @@ class AptWrapperTest {
|
|||||||
" LEFT JOIN `user` t2 ON (t2.id = t.update_by)\n" +
|
" LEFT JOIN `user` t2 ON (t2.id = t.update_by)\n" +
|
||||||
"WHERE (t2.id = t.update_by AND t.id = t1.id)");
|
"WHERE (t2.id = t.update_by AND t.id = t1.id)");
|
||||||
|
|
||||||
UserDOCol uu = new UserDOCol();
|
UserDOCol uu = UserDOCol.build();
|
||||||
UserDOCol uua = new UserDOCol();
|
UserDOCol uua = UserDOCol.build();
|
||||||
UserDOCol uub = new UserDOCol();
|
UserDOCol uub = UserDOCol.build();
|
||||||
|
|
||||||
//关联一张表多次
|
//关联一张表多次
|
||||||
AptQueryWrapper<UserDO> w = new AptQueryWrapper<>(uu)
|
AptQueryWrapper<UserDO> w = new AptQueryWrapper<>(uu)
|
||||||
@ -534,9 +534,9 @@ class AptWrapperTest {
|
|||||||
"WHERE t.del = false\n" +
|
"WHERE t.del = false\n" +
|
||||||
" AND (t1.id <= ? AND t.id <= ?)");
|
" AND (t1.id <= ? AND t.id <= ?)");
|
||||||
|
|
||||||
UserDOCol uuu = new UserDOCol();
|
UserDOCol uuu = UserDOCol.build();
|
||||||
UserDOCol uuua = new UserDOCol();
|
UserDOCol uuua = UserDOCol.build();
|
||||||
UserDOCol uuub = new UserDOCol();
|
UserDOCol uuub = UserDOCol.build();
|
||||||
|
|
||||||
AptQueryWrapper<UserDO> wrapper1 = new AptQueryWrapper<>(uuu)
|
AptQueryWrapper<UserDO> wrapper1 = new AptQueryWrapper<>(uuu)
|
||||||
.disableSubLogicDel()
|
.disableSubLogicDel()
|
||||||
@ -557,20 +557,20 @@ class AptWrapperTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
void testLogicDel() {
|
void testLogicDel() {
|
||||||
UserDOCol u1 = new UserDOCol();
|
UserDOCol u1 = UserDOCol.build();
|
||||||
List<UserDTO> l1 = userMapper.selectJoinList(UserDTO.class, new AptQueryWrapper<>(u1));
|
List<UserDTO> l1 = userMapper.selectJoinList(UserDTO.class, new AptQueryWrapper<>(u1));
|
||||||
assert l1.size() == 14;
|
assert l1.size() == 14;
|
||||||
|
|
||||||
UserDOCol u2 = new UserDOCol();
|
UserDOCol u2 = UserDOCol.build();
|
||||||
AddressDOCol addr2 = new AddressDOCol();
|
AddressDOCol addr2 = AddressDOCol.build();
|
||||||
List<UserDTO> l2 = userMapper.selectJoinList(UserDTO.class, new AptQueryWrapper<>(u2)
|
List<UserDTO> l2 = userMapper.selectJoinList(UserDTO.class, new AptQueryWrapper<>(u2)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.select(addr2.address)
|
.select(addr2.address)
|
||||||
.leftJoin(addr2, addr2.userId, u2.id));
|
.leftJoin(addr2, addr2.userId, u2.id));
|
||||||
assert l2.size() == 10;
|
assert l2.size() == 10;
|
||||||
|
|
||||||
UserDOCol u3 = new UserDOCol();
|
UserDOCol u3 = UserDOCol.build();
|
||||||
AddressDOCol addr3 = new AddressDOCol();
|
AddressDOCol addr3 = AddressDOCol.build();
|
||||||
List<UserDTO> l3 = userMapper.selectJoinList(UserDTO.class, new AptQueryWrapper<>(u3)
|
List<UserDTO> l3 = userMapper.selectJoinList(UserDTO.class, new AptQueryWrapper<>(u3)
|
||||||
.disableSubLogicDel()
|
.disableSubLogicDel()
|
||||||
.selectAll()
|
.selectAll()
|
||||||
@ -578,8 +578,8 @@ class AptWrapperTest {
|
|||||||
.leftJoin(addr3, addr3.userId, u3.id));
|
.leftJoin(addr3, addr3.userId, u3.id));
|
||||||
assert l3.size() == 14 && l3.get(0).getAddressList().size() == 9;
|
assert l3.size() == 14 && l3.get(0).getAddressList().size() == 9;
|
||||||
|
|
||||||
UserDOCol u4 = new UserDOCol();
|
UserDOCol u4 = UserDOCol.build();
|
||||||
AddressDOCol addr4 = new AddressDOCol();
|
AddressDOCol addr4 = AddressDOCol.build();
|
||||||
List<UserDTO> l4 = userMapper.selectJoinList(UserDTO.class, new AptQueryWrapper<>(u4)
|
List<UserDTO> l4 = userMapper.selectJoinList(UserDTO.class, new AptQueryWrapper<>(u4)
|
||||||
.disableSubLogicDel()
|
.disableSubLogicDel()
|
||||||
.selectAll()
|
.selectAll()
|
||||||
@ -595,8 +595,8 @@ class AptWrapperTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
void testAlias() {
|
void testAlias() {
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
UserDOCol uu = new UserDOCol();
|
UserDOCol uu = UserDOCol.build();
|
||||||
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
||||||
// .disableSubLogicDel()//关闭副表逻辑删除
|
// .disableSubLogicDel()//关闭副表逻辑删除
|
||||||
// .disableLogicDel()//关闭主表逻辑删除
|
// .disableLogicDel()//关闭主表逻辑删除
|
||||||
@ -616,8 +616,8 @@ class AptWrapperTest {
|
|||||||
void testObj() {
|
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");
|
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();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
||||||
.distinct()
|
.distinct()
|
||||||
.select(u.id)
|
.select(u.id)
|
||||||
@ -651,8 +651,8 @@ class AptWrapperTest {
|
|||||||
"WHERE t.del = false\n" +
|
"WHERE t.del = false\n" +
|
||||||
" AND aa.del = false");
|
" AND aa.del = false");
|
||||||
|
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol("aa");
|
AddressDOCol addr = AddressDOCol.build("aa");
|
||||||
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
||||||
// .disableLogicDel()//关闭主表逻辑删除
|
// .disableLogicDel()//关闭主表逻辑删除
|
||||||
.selectAll()
|
.selectAll()
|
||||||
@ -666,9 +666,9 @@ class AptWrapperTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testLabel() {
|
void testLabel() {
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr1 = new AddressDOCol("t1");
|
AddressDOCol addr1 = AddressDOCol.build("t1");
|
||||||
AddressDOCol addr2 = new AddressDOCol("t2");
|
AddressDOCol addr2 = AddressDOCol.build("t2");
|
||||||
|
|
||||||
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
||||||
.disableSubLogicDel()
|
.disableSubLogicDel()
|
||||||
@ -690,9 +690,9 @@ class AptWrapperTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
void test1() {
|
void test1() {
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
AreaDOCol ar = new AreaDOCol();
|
AreaDOCol ar = AreaDOCol.build();
|
||||||
|
|
||||||
Page<UserDTO> page = new Page<>(1, 10);
|
Page<UserDTO> page = new Page<>(1, 10);
|
||||||
page.setSearchCount(false);
|
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 " +
|
"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 > ?");
|
"(t.id = ? AND (t.head_img = ? OR t1.user_id = ?) AND t.id = ?) ) TMP WHERE ROWNUM <=?) WHERE ROW_ID > ?");
|
||||||
|
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
|
|
||||||
IPage<UserDTO> page = userMapper.selectJoinPage(new Page<>(1, 10), UserDTO.class, JoinWrappers.apt(u)
|
IPage<UserDTO> page = userMapper.selectJoinPage(new Page<>(1, 10), UserDTO.class, JoinWrappers.apt(u)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
@ -758,8 +758,8 @@ class AptWrapperTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
void test4() {
|
void test4() {
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
|
|
||||||
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
.selectSum(u.id)
|
.selectSum(u.id)
|
||||||
@ -777,7 +777,7 @@ class AptWrapperTest {
|
|||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
void test8() throws BadSqlGrammarException {
|
void test8() throws BadSqlGrammarException {
|
||||||
ThreadLocalUtils.set("SELECT t.`name` FROM `user` t WHERE t.del=false AND (t.`name` = ?)");
|
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)
|
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
||||||
.select(u.name)
|
.select(u.name)
|
||||||
.eq(u.name, "ref");
|
.eq(u.name, "ref");
|
||||||
@ -790,8 +790,8 @@ class AptWrapperTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
void test7() {
|
void test7() {
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
List<Map<String, Object>> list = userMapper.selectJoinMaps(JoinWrappers.apt(u)
|
List<Map<String, Object>> list = userMapper.selectJoinMaps(JoinWrappers.apt(u)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.select(addr.address)
|
.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 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 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 < ?) ");
|
"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)
|
List<UserDO> dos1 = userMapper.selectList(new AptQueryWrapper<>(u)
|
||||||
.gt(u.id, 3)
|
.gt(u.id, 3)
|
||||||
.lt(u.id, 8));
|
.lt(u.id, 8));
|
||||||
@ -826,7 +826,7 @@ class AptWrapperTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
void testGeneric() {
|
void testGeneric() {
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
AptQueryWrapper<AddressDO> wrapper = new AptQueryWrapper<>(addr)
|
AptQueryWrapper<AddressDO> wrapper = new AptQueryWrapper<>(addr)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.le(addr.id, 10000)
|
.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( 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( * ) 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");
|
"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();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
AreaDOCol ar = new AreaDOCol();
|
AreaDOCol ar = AreaDOCol.build();
|
||||||
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
||||||
.leftJoin(addr, addr.userId, u.id)
|
.leftJoin(addr, addr.userId, u.id)
|
||||||
.leftJoin(ar, ar.id, addr.areaId);
|
.leftJoin(ar, ar.id, addr.areaId);
|
||||||
Object integer = userMapper.selectCount(wrapper);
|
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");
|
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();
|
UserDOCol u1 = UserDOCol.build();
|
||||||
AddressDOCol addr1 = new AddressDOCol();
|
AddressDOCol addr1 = AddressDOCol.build();
|
||||||
AreaDOCol ar1 = new AreaDOCol();
|
AreaDOCol ar1 = AreaDOCol.build();
|
||||||
AptQueryWrapper<UserDO> wrapper1 = new AptQueryWrapper<>(u1)
|
AptQueryWrapper<UserDO> wrapper1 = new AptQueryWrapper<>(u1)
|
||||||
.leftJoin(addr1, addr1.userId, u1.id)
|
.leftJoin(addr1, addr1.userId, u1.id)
|
||||||
.leftJoin(ar1, ar1.id, addr1.areaId);
|
.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 " +
|
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 " +
|
"(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");
|
"AND t2.del = false AND (t.id <= ?) ORDER BY t.id DESC");
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
AreaDOCol ar = new AreaDOCol();
|
AreaDOCol ar = AreaDOCol.build();
|
||||||
|
|
||||||
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
||||||
.select(u.id)
|
.select(u.id)
|
||||||
@ -925,9 +925,9 @@ class AptWrapperTest {
|
|||||||
"WHERE t.del = false\n" +
|
"WHERE t.del = false\n" +
|
||||||
" AND (t.id <= ?)\n" +
|
" AND (t.id <= ?)\n" +
|
||||||
"ORDER BY t.id DESC\n");
|
"ORDER BY t.id DESC\n");
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
AreaDOCol ar = new AreaDOCol();
|
AreaDOCol ar = AreaDOCol.build();
|
||||||
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
AptQueryWrapper<UserDO> wrapper = new AptQueryWrapper<>(u)
|
||||||
.logicDelToOn()
|
.logicDelToOn()
|
||||||
.selectAll()
|
.selectAll()
|
||||||
@ -978,9 +978,9 @@ class AptWrapperTest {
|
|||||||
"WHERE t.del = false\n" +
|
"WHERE t.del = false\n" +
|
||||||
" AND (t.id <= ?)\n" +
|
" AND (t.id <= ?)\n" +
|
||||||
"ORDER BY t.id DESC\n");
|
"ORDER BY t.id DESC\n");
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
AreaDOCol ar = new AreaDOCol();
|
AreaDOCol ar = AreaDOCol.build();
|
||||||
|
|
||||||
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
.logicDelToOn()
|
.logicDelToOn()
|
||||||
@ -1001,9 +1001,9 @@ class AptWrapperTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void joinRandomMap() {
|
void joinRandomMap() {
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
AreaDOCol ar = new AreaDOCol();
|
AreaDOCol ar = AreaDOCol.build();
|
||||||
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
.logicDelToOn()
|
.logicDelToOn()
|
||||||
.selectAll()
|
.selectAll()
|
||||||
@ -1028,9 +1028,9 @@ class AptWrapperTest {
|
|||||||
@Test
|
@Test
|
||||||
void joinRandomMap111() {
|
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");
|
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 u = UserDOCol.build();
|
||||||
UserDOCol u1 = new UserDOCol();
|
UserDOCol u1 = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
AptQueryWrapper<AddressDO> wrapper = JoinWrappers.apt(addr)
|
AptQueryWrapper<AddressDO> wrapper = JoinWrappers.apt(addr)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.leftJoin(u, u.addressId, addr.id)
|
.leftJoin(u, u.addressId, addr.id)
|
||||||
@ -1045,8 +1045,8 @@ class AptWrapperTest {
|
|||||||
@Test
|
@Test
|
||||||
void joinOwn() {
|
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)");
|
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();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.leftJoin(addr, addr.userId, u.id)
|
.leftJoin(addr, addr.userId, u.id)
|
||||||
@ -1062,8 +1062,8 @@ class AptWrapperTest {
|
|||||||
void joinOwn1() {
|
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 " +
|
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)");
|
"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();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol("aaa");
|
AddressDOCol addr = AddressDOCol.build("aaa");
|
||||||
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.leftJoin(addr, addr.userId, u.id)
|
.leftJoin(addr, addr.userId, u.id)
|
||||||
@ -1071,8 +1071,6 @@ class AptWrapperTest {
|
|||||||
.eq(addr.id, addr.id);
|
.eq(addr.id, addr.id);
|
||||||
List<UserDO> addressDOS = wrapper.list();
|
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",
|
ThreadLocalUtils.set("SELECT id,user_id,name FROM order_t t",
|
||||||
"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);
|
AptQueryWrapper<OrderDO> wrapper = JoinWrappers.apt(o);
|
||||||
List<OrderDO> list = wrapper.list();
|
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");
|
"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();
|
UserDOCol u = UserDOCol.build();
|
||||||
OrderDOCol o1 = new OrderDOCol();
|
OrderDOCol o1 = OrderDOCol.build();
|
||||||
AptQueryWrapper<OrderDO> w = JoinWrappers.apt(o1)
|
AptQueryWrapper<OrderDO> w = JoinWrappers.apt(o1)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.selectAs(u.name, OrderDO::getUserName)
|
.selectAs(u.name, OrderDO::getUserName)
|
||||||
@ -1113,8 +1111,8 @@ class AptWrapperTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
void checkOrderBy() {
|
void checkOrderBy() {
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.leftJoin(addr, addr.userId, u.id)
|
.leftJoin(addr, addr.userId, u.id)
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
package com.github.yulichang.test.join.apt.unit;
|
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.UserDO;
|
||||||
import com.github.yulichang.test.join.entity.apt.AddressDOCol;
|
import com.github.yulichang.test.join.entity.apt.AddressDOCol;
|
||||||
import com.github.yulichang.test.join.entity.apt.UserDOCol;
|
import com.github.yulichang.test.join.entity.apt.UserDOCol;
|
||||||
import com.github.yulichang.test.util.Reset;
|
import com.github.yulichang.test.util.Reset;
|
||||||
import com.github.yulichang.test.util.ThreadLocalUtils;
|
import com.github.yulichang.test.util.ThreadLocalUtils;
|
||||||
import com.github.yulichang.toolkit.JoinWrappers;
|
import com.github.yulichang.toolkit.JoinWrappers;
|
||||||
import com.github.yulichang.wrapper.segments.Fun;
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
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 " +
|
"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 " +
|
||||||
"AND concat(t.id, t1.user_id, ?) IS NOT NULL)");
|
"AND concat(t.id, t1.user_id, ?) IS NOT NULL)");
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
|
|
||||||
List<UserDO> list = JoinWrappers.apt(u)
|
List<UserDO> list = JoinWrappers.apt(u)
|
||||||
.selectAll()
|
.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 " +
|
||||||
"AND concat(t.id, t1.user_id, ?) IS NOT NULL)");
|
"AND concat(t.id, t1.user_id, ?) IS NOT NULL)");
|
||||||
|
|
||||||
UserDOCol u1 = new UserDOCol();
|
UserDOCol u1 = UserDOCol.build();
|
||||||
AddressDOCol addr1 = new AddressDOCol();
|
AddressDOCol addr1 = AddressDOCol.build();
|
||||||
|
|
||||||
List<UserDO> list1 = JoinWrappers.apt(u1)
|
List<UserDO> list1 = JoinWrappers.apt(u1)
|
||||||
.selectAll(u1, u1.id)
|
.selectAll(u1, u1.id)
|
||||||
|
@ -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.Reset;
|
||||||
import com.github.yulichang.test.util.ThreadLocalUtils;
|
import com.github.yulichang.test.util.ThreadLocalUtils;
|
||||||
import com.github.yulichang.toolkit.JoinWrappers;
|
import com.github.yulichang.toolkit.JoinWrappers;
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
||||||
import com.github.yulichang.wrapper.apt.AptQueryWrapper;
|
import com.github.yulichang.wrapper.apt.AptQueryWrapper;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@ -24,7 +23,7 @@ public class AroundTest {
|
|||||||
void around() {
|
void around() {
|
||||||
ThreadLocalUtils.set("SELECT * FROM (SELECT t.id, t.pid, t.`name`, t.`json`, t.sex, t.head_img, " +
|
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");
|
"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)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
.around("select * from (", ") tmp");
|
.around("select * from (", ") tmp");
|
||||||
wrapper.list().forEach(System.out::println);
|
wrapper.list().forEach(System.out::println);
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package com.github.yulichang.test.join.apt.unit;
|
package com.github.yulichang.test.join.apt.unit;
|
||||||
|
|
||||||
import com.github.yulichang.test.join.entity.UserTenantaDO;
|
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.test.join.entity.apt.UserTenantaDOCol;
|
||||||
import com.github.yulichang.toolkit.JoinWrappers;
|
import com.github.yulichang.toolkit.JoinWrappers;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@ -14,7 +13,7 @@ public class ChineseFieldTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void chineseField() {
|
void chineseField() {
|
||||||
UserTenantaDOCol ut = new UserTenantaDOCol();
|
UserTenantaDOCol ut = UserTenantaDOCol.build();
|
||||||
List<UserTenantaDO> list = JoinWrappers.apt(ut).list();
|
List<UserTenantaDO> list = JoinWrappers.apt(ut).list();
|
||||||
assert list.get(0).getDetail() != null;
|
assert list.get(0).getDetail() != null;
|
||||||
list.forEach(System.out::println);
|
list.forEach(System.out::println);
|
||||||
|
@ -30,6 +30,7 @@ public class CustomWrapperTest {
|
|||||||
|
|
||||||
|
|
||||||
//自定义wrapper扩展
|
//自定义wrapper扩展
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public static class CWrapper<T> extends AptQueryWrapper<T> {
|
public static class CWrapper<T> extends AptQueryWrapper<T> {
|
||||||
|
|
||||||
public CWrapper(BaseColumn<T> baseColumn) {
|
public CWrapper(BaseColumn<T> baseColumn) {
|
||||||
@ -54,7 +55,7 @@ public class CustomWrapperTest {
|
|||||||
@Test
|
@Test
|
||||||
void testWrapperCustomer() {
|
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 = ?)");
|
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)
|
CWrapper<UserDO> wrapper = new CWrapper<>(u)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.toChildren(CWrapper::toCWrapper)
|
.toChildren(CWrapper::toCWrapper)
|
||||||
@ -62,7 +63,7 @@ public class CustomWrapperTest {
|
|||||||
List<UserDO> dos = userMapper.selectList(wrapper);
|
List<UserDO> dos = userMapper.selectList(wrapper);
|
||||||
dos.forEach(System.out::println);
|
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");
|
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)
|
CWrapper<UserDO> wrapper1 = new CWrapper<>(u1)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package com.github.yulichang.test.join.apt.unit;
|
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.join.entity.apt.UserDOCol;
|
||||||
import com.github.yulichang.test.util.Reset;
|
import com.github.yulichang.test.util.Reset;
|
||||||
import com.github.yulichang.test.util.ThreadLocalUtils;
|
import com.github.yulichang.test.util.ThreadLocalUtils;
|
||||||
@ -22,12 +21,12 @@ public class EqSqlTest {
|
|||||||
void eqSql() {
|
void eqSql() {
|
||||||
ThreadLocalUtils.set("SELECT t.id, t.pid, t.`name`, t.`json`, t.sex, t.head_img, t.create_time, t.address_id, " +
|
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))");
|
"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();
|
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, " +
|
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))");
|
"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();
|
JoinWrappers.apt(u1).eqSql("t.id", "select id from `user` where id = 1").list();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,8 +34,8 @@ public class FieldAliasTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void fieldAlias() {
|
void fieldAlias() {
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
List<UserDO> list = userMapper.selectList(JoinWrappers.apt(u)
|
List<UserDO> list = userMapper.selectList(JoinWrappers.apt(u)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.leftJoin(addr, addr.userId, u.id));
|
.leftJoin(addr, addr.userId, u.id));
|
||||||
@ -48,8 +48,8 @@ public class FieldAliasTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void fieldAlias1() {
|
void fieldAlias1() {
|
||||||
UserTenantDOCol ut = new UserTenantDOCol();
|
UserTenantDOCol ut = UserTenantDOCol.build();
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AptQueryWrapper<UserTenantDO> wrapper = JoinWrappers.apt(ut)
|
AptQueryWrapper<UserTenantDO> wrapper = JoinWrappers.apt(ut)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.leftJoin(u, u.id, ut.uuid);
|
.leftJoin(u, u.id, ut.uuid);
|
||||||
|
@ -28,8 +28,8 @@ public class FieldNameTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testFieldName() {
|
void testFieldName() {
|
||||||
AreaDOCol ar = new AreaDOCol();
|
AreaDOCol ar = AreaDOCol.build();
|
||||||
UserDtoCol ud = new UserDtoCol();
|
UserDtoCol ud = UserDtoCol.build();
|
||||||
List<AreaDO> list = areaMapper.selectJoinList(AreaDO.class, JoinWrappers.apt(ar)
|
List<AreaDO> list = areaMapper.selectJoinList(AreaDO.class, JoinWrappers.apt(ar)
|
||||||
.select(ar.Postcode)
|
.select(ar.Postcode)
|
||||||
.leftJoin(ud, ud.id, ar.id));
|
.leftJoin(ud, ud.id, ar.id));
|
||||||
@ -39,8 +39,8 @@ public class FieldNameTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testFieldName1() {
|
void testFieldName1() {
|
||||||
AreaDOCol ar = new AreaDOCol();
|
AreaDOCol ar = AreaDOCol.build();
|
||||||
UserDtoCol ud = new UserDtoCol();
|
UserDtoCol ud = UserDtoCol.build();
|
||||||
List<AreaDTO> list = areaMapper.selectJoinList(AreaDTO.class, JoinWrappers.apt(ar)
|
List<AreaDTO> list = areaMapper.selectJoinList(AreaDTO.class, JoinWrappers.apt(ar)
|
||||||
.selectAs(ar.Postcode, AreaDTO::getPostcode)
|
.selectAs(ar.Postcode, AreaDTO::getPostcode)
|
||||||
.leftJoin(ud, ud.id, ar.id));
|
.leftJoin(ud, ud.id, ar.id));
|
||||||
|
@ -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.Reset;
|
||||||
import com.github.yulichang.test.util.ThreadLocalUtils;
|
import com.github.yulichang.test.util.ThreadLocalUtils;
|
||||||
import com.github.yulichang.toolkit.JoinWrappers;
|
import com.github.yulichang.toolkit.JoinWrappers;
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
||||||
import com.github.yulichang.wrapper.apt.AptQueryWrapper;
|
import com.github.yulichang.wrapper.apt.AptQueryWrapper;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
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, " +
|
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 " +
|
"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` = ?)");
|
"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)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.eqIfExists(u.id, 1)
|
.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, " +
|
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 " +
|
"t.address_id2, t.del, t.create_by, t.update_by FROM `user` t " +
|
||||||
"WHERE t.del = false AND (t.id = ? AND t.`name` = ?)");
|
"WHERE t.del = false AND (t.id = ? AND t.`name` = ?)");
|
||||||
UserDOCol u1 = new UserDOCol();
|
UserDOCol u1 = UserDOCol.build();
|
||||||
AptQueryWrapper<UserDO> wrapper1 = JoinWrappers.apt(u1)
|
AptQueryWrapper<UserDO> wrapper1 = JoinWrappers.apt(u1)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.setIfExists(IfExistsEnum.NOT_BLANK)
|
.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, " +
|
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 " +
|
"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` = ?)");
|
"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)
|
AptQueryWrapper<UserDO> wrapper2 = JoinWrappers.apt(u2)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.setIfExists(o -> true)
|
.setIfExists(o -> true)
|
||||||
|
@ -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.Reset;
|
||||||
import com.github.yulichang.test.util.ThreadLocalUtils;
|
import com.github.yulichang.test.util.ThreadLocalUtils;
|
||||||
import com.github.yulichang.toolkit.JoinWrappers;
|
import com.github.yulichang.toolkit.JoinWrappers;
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
||||||
import com.github.yulichang.wrapper.apt.AptQueryWrapper;
|
import com.github.yulichang.wrapper.apt.AptQueryWrapper;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@ -25,7 +24,7 @@ public class NotLikeLeftRightTest {
|
|||||||
void notLikeLeftRight() {
|
void notLikeLeftRight() {
|
||||||
ThreadLocalUtils.set("SELECT t.id, t.pid, t.`name`, t.`json`, t.sex, t.head_img, t.create_time, t.address_id, " +
|
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 ?)");
|
"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)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.notLikeLeft(u.name, "aa");
|
.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, " +
|
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 ?)");
|
"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)
|
AptQueryWrapper<UserDO> wrapper1 = JoinWrappers.apt(u1)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
.notLikeRight(u1.name, "aa");
|
.notLikeRight(u1.name, "aa");
|
||||||
|
@ -31,7 +31,7 @@ public class OrderByTest {
|
|||||||
void orderBy() {
|
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 " +
|
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");
|
"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);
|
List<Column> columList = Arrays.asList(u.id, u.name, u.pid);
|
||||||
|
|
||||||
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
@ -48,7 +48,7 @@ public class OrderByTest {
|
|||||||
void orderBy1() {
|
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 " +
|
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");
|
"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);
|
List<Column> columList = Arrays.asList(u.id, u.name, u.pid);
|
||||||
|
|
||||||
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
@ -64,8 +64,8 @@ public class OrderByTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void orderBy2() {
|
void orderBy2() {
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
|
|
||||||
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
|
@ -30,10 +30,10 @@ public class SelectSubTest {
|
|||||||
@Test
|
@Test
|
||||||
void sub() {
|
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 <= ?)");
|
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 u = UserDOCol.build();
|
||||||
UserDOCol sb = new UserDOCol();
|
UserDOCol sb = UserDOCol.build();
|
||||||
UserDOCol sb2 = new UserDOCol();
|
UserDOCol sb2 = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
|
|
||||||
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
.selectSub(sb, w -> w.select(sb.id)
|
.selectSub(sb, w -> w.select(sb.id)
|
||||||
@ -48,9 +48,9 @@ public class SelectSubTest {
|
|||||||
.le(u.id, 100);
|
.le(u.id, 100);
|
||||||
wrapper.list();
|
wrapper.list();
|
||||||
|
|
||||||
UserDOCol u1 = new UserDOCol();
|
UserDOCol u1 = UserDOCol.build();
|
||||||
AddressDOCol addr1 = new AddressDOCol();
|
AddressDOCol addr1 = AddressDOCol.build();
|
||||||
AreaDOCol area = new AreaDOCol();
|
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 <= ?)");
|
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)
|
AptQueryWrapper<UserDO> wrapper1 = JoinWrappers.apt(u1)
|
||||||
@ -65,9 +65,9 @@ public class SelectSubTest {
|
|||||||
@Test
|
@Test
|
||||||
void sub1() {
|
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 <= ?)");
|
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();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
AreaDOCol ar = new AreaDOCol();
|
AreaDOCol ar = AreaDOCol.build();
|
||||||
|
|
||||||
AptQueryWrapper<UserDO> wrapper1 = JoinWrappers.apt(u)
|
AptQueryWrapper<UserDO> wrapper1 = JoinWrappers.apt(u)
|
||||||
.selectSub(ar, w -> w.select(ar.id)
|
.selectSub(ar, w -> w.select(ar.id)
|
||||||
|
@ -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`," +
|
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, " +
|
" (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");
|
"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();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
List<UserDTO> l3 = userMapper.selectJoinList(UserDTO.class, new AptQueryWrapper<>(u)
|
List<UserDTO> l3 = userMapper.selectJoinList(UserDTO.class, new AptQueryWrapper<>(u)
|
||||||
.select("(select id from `user` u where u.id = t.id) id")
|
.select("(select id from `user` u where u.id = t.id) id")
|
||||||
.select("t.`name` as PName")
|
.select("t.`name` as PName")
|
||||||
|
@ -38,10 +38,10 @@ public class TableAliasTest {
|
|||||||
"LEFT JOIN area area1 ON (area1.id = addr1.area_id) " +
|
"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 " +
|
"WHERE t.del = false AND addr1.del = false AND addr2.del = false AND area1.del = false " +
|
||||||
"GROUP BY t.id");
|
"GROUP BY t.id");
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr1 = new AddressDOCol("addr1");
|
AddressDOCol addr1 = AddressDOCol.build("addr1");
|
||||||
AddressDOCol addr2 = new AddressDOCol("addr2");
|
AddressDOCol addr2 = AddressDOCol.build("addr2");
|
||||||
AreaDOCol area1 = new AreaDOCol("area1");
|
AreaDOCol area1 = AreaDOCol.build("area1");
|
||||||
|
|
||||||
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
.selectAll()
|
.selectAll()
|
||||||
@ -63,10 +63,10 @@ public class TableAliasTest {
|
|||||||
"WHERE t.del = false AND addr1.del = false AND addr2.del = false AND area1.del = false " +
|
"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");
|
"GROUP BY t.id,addr1.id ORDER BY addr1.id DESC");
|
||||||
|
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr1 = new AddressDOCol("addr1");
|
AddressDOCol addr1 = AddressDOCol.build("addr1");
|
||||||
AddressDOCol addr2 = new AddressDOCol("addr2");
|
AddressDOCol addr2 = AddressDOCol.build("addr2");
|
||||||
AreaDOCol area1 = new AreaDOCol("area1");
|
AreaDOCol area1 = AreaDOCol.build("area1");
|
||||||
|
|
||||||
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
.selectAll()
|
.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 " +
|
"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 = ?)");
|
"AND (addr1.id = ? AND addr2.id = ? AND addr1.id = ?)");
|
||||||
|
|
||||||
UserDOCol u = new UserDOCol();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr1 = new AddressDOCol("addr1");
|
AddressDOCol addr1 = AddressDOCol.build("addr1");
|
||||||
AddressDOCol addr2 = new AddressDOCol("addr2");
|
AddressDOCol addr2 = AddressDOCol.build("addr2");
|
||||||
AreaDOCol area1 = new AreaDOCol("area1");
|
AreaDOCol area1 = AreaDOCol.build("area1");
|
||||||
|
|
||||||
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
.selectAll()
|
.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, " +
|
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");
|
"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 userDO = new UserDO();
|
||||||
userDO.setName("aaa");
|
userDO.setName("aaa");
|
||||||
|
@ -28,10 +28,10 @@ public class UnionTest {
|
|||||||
void unionAll1() {
|
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 = ?))");
|
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();
|
UserDOCol u = UserDOCol.build();
|
||||||
AddressDOCol addr = new AddressDOCol();
|
AddressDOCol addr = AddressDOCol.build();
|
||||||
AreaDOCol area = new AreaDOCol();
|
AreaDOCol area = AreaDOCol.build();
|
||||||
AreaDOCol areaSb = new AreaDOCol();
|
AreaDOCol areaSb = AreaDOCol.build();
|
||||||
|
|
||||||
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
AptQueryWrapper<UserDO> wrapper = JoinWrappers.apt(u)
|
||||||
.select(u.id)
|
.select(u.id)
|
||||||
|
@ -21,6 +21,7 @@ import javax.tools.Diagnostic;
|
|||||||
import javax.tools.JavaFileObject;
|
import javax.tools.JavaFileObject;
|
||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -114,20 +115,25 @@ public class EntityProcessor extends AbstractProcessor {
|
|||||||
|
|
||||||
tableInfo.setFields(fieldInfos);
|
tableInfo.setFields(fieldInfos);
|
||||||
|
|
||||||
StringBuilderHelper content = new StringBuilderHelper()
|
StringBuilderHelper content = new StringBuilderHelper(tableInfo)
|
||||||
.addPackage(tableInfo.getTagClassPackage())
|
.addPackage(tableInfo.getTagClassPackage())
|
||||||
.newLine()
|
.newLine()
|
||||||
.addImport(BaseColumn.class.getName())
|
.addImport(true, BaseColumn.class.getName())
|
||||||
.addImport(Column.class.getName())
|
.addImport(true, Column.class.getName())
|
||||||
.addImport(tableInfo.getClassName())
|
.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()
|
.newLine()
|
||||||
.addClass(tableInfo.getClassComment(), tableInfo.getTagClassName(),
|
.addClass(tableInfo.getClassComment(), tableInfo.getTagClassName(),
|
||||||
BaseColumn.class.getSimpleName() + "<" + tableInfo.getSimpleClassName() + ">",
|
BaseColumn.class.getSimpleName() + "<" + tableInfo.getSimpleClassName() + ">",
|
||||||
c -> c
|
c -> c
|
||||||
.addConstructor(tableInfo)
|
.addConstructor()
|
||||||
.addFields(tableInfo)
|
.addFields()
|
||||||
.addMethod(tableInfo)
|
.addMethod()
|
||||||
.addBuild(tableInfo)
|
.addBuild()
|
||||||
|
.addCacheClass()
|
||||||
);
|
);
|
||||||
writerFile(tableInfo.getTagClassPackage() + "." + tableInfo.getTagClassName(), content.getContent());
|
writerFile(tableInfo.getTagClassPackage() + "." + tableInfo.getTagClassName(), content.getContent());
|
||||||
return tableInfo;
|
return tableInfo;
|
||||||
@ -142,7 +148,7 @@ public class EntityProcessor extends AbstractProcessor {
|
|||||||
content.addPackage(tagPackage);
|
content.addPackage(tagPackage);
|
||||||
content.newLine();
|
content.newLine();
|
||||||
// import
|
// import
|
||||||
tableInfos.forEach(tableInfo -> content.addImport(tableInfo.getTagClassPackage() + "." + tableInfo.getTagClassName()));
|
tableInfos.forEach(tableInfo -> content.addImport(true, tableInfo.getTagClassPackage() + "." + tableInfo.getTagClassName()));
|
||||||
content.newLine();
|
content.newLine();
|
||||||
// class
|
// class
|
||||||
String tables = "Tables";
|
String tables = "Tables";
|
||||||
@ -172,14 +178,24 @@ public class EntityProcessor extends AbstractProcessor {
|
|||||||
@SuppressWarnings("UnusedReturnValue")
|
@SuppressWarnings("UnusedReturnValue")
|
||||||
public static class StringBuilderHelper {
|
public static class StringBuilderHelper {
|
||||||
private final StringBuilder sb = new StringBuilder();
|
private final StringBuilder sb = new StringBuilder();
|
||||||
|
private TableInfo tableInfo;
|
||||||
|
|
||||||
|
public StringBuilderHelper() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public StringBuilderHelper(TableInfo tableInfo) {
|
||||||
|
this.tableInfo = tableInfo;
|
||||||
|
}
|
||||||
|
|
||||||
public StringBuilderHelper addPackage(String packageName) {
|
public StringBuilderHelper addPackage(String packageName) {
|
||||||
sb.append("package ").append(packageName).append(";\n");
|
sb.append("package ").append(packageName).append(";\n");
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public StringBuilderHelper addImport(String importName) {
|
public StringBuilderHelper addImport(boolean cond, String importName) {
|
||||||
sb.append("import ").append(importName).append(";\n");
|
if (cond) {
|
||||||
|
sb.append("import ").append(importName).append(";\n");
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,7 +212,7 @@ public class EntityProcessor extends AbstractProcessor {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public StringBuilderHelper addConstructor(TableInfo tableInfo) {
|
public StringBuilderHelper addConstructor() {
|
||||||
// 无参构造
|
// 无参构造
|
||||||
newLine();
|
newLine();
|
||||||
sb.append(String.format("\tpublic %s() {\n\t}\n", tableInfo.getTagClassName()));
|
sb.append(String.format("\tpublic %s() {\n\t}\n", tableInfo.getTagClassName()));
|
||||||
@ -218,7 +234,7 @@ public class EntityProcessor extends AbstractProcessor {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public StringBuilderHelper addFields(TableInfo tableInfo) {
|
public StringBuilderHelper addFields() {
|
||||||
tableInfo.getFields().forEach(fieldInfo -> {
|
tableInfo.getFields().forEach(fieldInfo -> {
|
||||||
addComment("\t", fieldInfo.getComment());
|
addComment("\t", fieldInfo.getComment());
|
||||||
sb.append(String.format("\tpublic final Column %s = new Column(this, \"%s\");\n",
|
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) {
|
public StringBuilderHelper addTablesFields(List<TableInfo> tableInfos) {
|
||||||
tableInfos.forEach(tableInfo -> {
|
tableInfos.forEach(tableInfo -> {
|
||||||
addComment("\t", tableInfo.getClassComment());
|
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(),
|
tableInfo.getTagClassName(),
|
||||||
String.format(tableInfo.getTagTablesName(), tableInfo.getSimpleClassName()),
|
String.format(tableInfo.getTagTablesName(), tableInfo.getSimpleClassName()),
|
||||||
tableInfo.getTagClassName()));
|
tableInfo.getTagClassName()));
|
||||||
@ -240,7 +256,7 @@ public class EntityProcessor extends AbstractProcessor {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public StringBuilderHelper addMethod(TableInfo tableInfo) {
|
public StringBuilderHelper addMethod() {
|
||||||
sb.append("\t@Override\n" +
|
sb.append("\t@Override\n" +
|
||||||
"\tpublic Class<").append(tableInfo.getSimpleClassName()).append("> getColumnClass() {\n")
|
"\tpublic Class<").append(tableInfo.getSimpleClassName()).append("> getColumnClass() {\n")
|
||||||
.append("\t\treturn ").append(tableInfo.getSimpleClassName()).append(".class;\n")
|
.append("\t\treturn ").append(tableInfo.getSimpleClassName()).append(".class;\n")
|
||||||
@ -249,18 +265,33 @@ public class EntityProcessor extends AbstractProcessor {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public StringBuilderHelper addBuild(TableInfo tableInfo) {
|
public StringBuilderHelper addBuild() {
|
||||||
sb.append("\tpublic static ").append(tableInfo.getTagClassName()).append(" build() {\n")
|
sb.append("\tpublic static ").append(tableInfo.getTagClassName()).append(" build() {\n");
|
||||||
.append("\t\treturn new ").append(tableInfo.getTagClassName()).append("();\n")
|
sb.append("\t\treturn new ").append(tableInfo.getTagClassName()).append("();\n");
|
||||||
.append("\t}\n");
|
sb.append("\t}\n");
|
||||||
newLine();
|
newLine();
|
||||||
sb.append("\tpublic static ").append(tableInfo.getTagClassName()).append(" build(String alias) {\n")
|
sb.append("\tpublic static ").append(tableInfo.getTagClassName()).append(" build(String alias) {\n");
|
||||||
.append("\t\treturn new ").append(tableInfo.getTagClassName()).append("(alias);\n")
|
if (tableInfo.isCache()) {
|
||||||
.append("\t}\n");
|
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();
|
newLine();
|
||||||
return this;
|
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) {
|
private StringBuilderHelper addComment(String prefix, String comment) {
|
||||||
if (StringUtil.isNotEmpty(comment)) {
|
if (StringUtil.isNotEmpty(comment)) {
|
||||||
sb.append(prefix).append("/**\n");
|
sb.append(prefix).append("/**\n");
|
||||||
@ -276,6 +307,13 @@ public class EntityProcessor extends AbstractProcessor {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public StringBuilderHelper newLine(boolean cond) {
|
||||||
|
if (cond) {
|
||||||
|
sb.append("\n");
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getContent() {
|
public String getContent() {
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ public class Conf {
|
|||||||
private boolean genTables = true;
|
private boolean genTables = true;
|
||||||
private String tablasClassPackage = "%s.tables";
|
private String tablasClassPackage = "%s.tables";
|
||||||
private String tablesClassName = "%S";
|
private String tablesClassName = "%S";
|
||||||
|
private boolean cache = true;
|
||||||
|
|
||||||
private boolean initFlag = false;
|
private boolean initFlag = false;
|
||||||
|
|
||||||
@ -32,6 +33,7 @@ public class Conf {
|
|||||||
this.tablasClassPackage = conf.tablasClassPackage;
|
this.tablasClassPackage = conf.tablasClassPackage;
|
||||||
this.tablesClassName = conf.tablesClassName;
|
this.tablesClassName = conf.tablesClassName;
|
||||||
this.initFlag = conf.initFlag;
|
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.genTables = Boolean.parseBoolean(properties.getOrDefault("genTables", Boolean.toString(this.genTables)).toString());
|
||||||
this.tablasClassPackage = properties.getOrDefault("tablasClassPackage", this.tablasClassPackage).toString();
|
this.tablasClassPackage = properties.getOrDefault("tablasClassPackage", this.tablasClassPackage).toString();
|
||||||
this.tablesClassName = properties.getOrDefault("tablesClassName", this.tablesClassName).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) {
|
public static Conf getConf(Conf globalConf, Table table, Collection<String> keys) {
|
||||||
@ -124,12 +127,21 @@ public class Conf {
|
|||||||
this.tablesClassName = tablesClassName;
|
this.tablesClassName = tablesClassName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isCache() {
|
||||||
|
return cache;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCache(boolean cache) {
|
||||||
|
this.cache = cache;
|
||||||
|
}
|
||||||
|
|
||||||
public enum ConfItem {
|
public enum ConfItem {
|
||||||
className("value", Table::value, (c, v) -> c.setClassName(v.toString())),
|
className("value", Table::value, (c, v) -> c.setClassName(v.toString())),
|
||||||
packageName("classPackage", Table::classPackage, (c, v) -> c.setClassPackage(v.toString())),
|
packageName("classPackage", Table::classPackage, (c, v) -> c.setClassPackage(v.toString())),
|
||||||
genTables("genTables", Table::genTables, (c, v) -> c.setGenTables((boolean) v)),
|
genTables("genTables", Table::genTables, (c, v) -> c.setGenTables((boolean) v)),
|
||||||
tablasPackageName("tablesClassPackage", Table::tablesClassPackage, (c, v) -> c.setTablasClassPackage(v.toString())),
|
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;
|
private final String action;
|
||||||
|
|
||||||
|
@ -126,6 +126,10 @@ public class TableInfo {
|
|||||||
return this.conf.isGenTables();
|
return this.conf.isGenTables();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isCache() {
|
||||||
|
return this.conf.isCache();
|
||||||
|
}
|
||||||
|
|
||||||
public Set<FieldInfo> getFields() {
|
public Set<FieldInfo> getFields() {
|
||||||
return fields;
|
return fields;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user