import com.alibaba.fastjson.JSONObject; import lombok.Data; import org.example.DromaraApplication; import org.example.join.model.DefaultFunction; import org.example.join.model.QueryColumn; import org.example.join.model.QueryColumnField; import org.example.join.model.QueryColumnFields; import org.example.join.model.Table; import org.example.join.model.TableSublist; import org.example.join.sql.Sql; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util.List; @RunWith(SpringRunner.class) @SpringBootTest(classes = DromaraApplication.class) public class MySpringBootTest implements DefaultFunction { public static final Table sys_dept = new Table("sys_dept"); public final QueryColumnField dept_id = sys_dept.field("dept_id"); public final QueryColumnField tenant_id = sys_dept.field("tenant_id"); public final QueryColumnField parent_id = sys_dept.field("parent_id"); public final QueryColumnField ancestors = sys_dept.field("ancestors"); public final QueryColumnField status = sys_dept.field("status"); public final QueryColumnFields sysDeptAll = new QueryColumnFields(dept_id, tenant_id, parent_id, ancestors); public static final Table sys_user = new Table("sys_user"); public final QueryColumnField user_id = sys_user.field("user_id"); public final QueryColumnField user_name = sys_user.field("user_name"); public final QueryColumnField nick_name = sys_user.field("nick_name"); public final QueryColumnField sex = sys_user.field("sex"); public final QueryColumnField create_by = sys_user.field("create_by"); @Test public void testCache() { TableSublist childTable = Sql.create() .select( sysDeptAll, status ) .from(sys_dept) .tableAs(sys_dept); List list = Sql.create() //.logic() //.distinct() .select( dept_id.as("aaa"), childTable.field(tenant_id).as("bbb"), childTable.field("status").as("ccc"), Sql.create().select(groupConcat(new QueryColumn("dept_id order by dept_id asc")).as("deptGroup")).from(sys_dept).as("ddd"), new QueryColumn("{0}", "ancestors").as("eee") ) .from(childTable) .leftJoin(sys_user).on(childTable.field(dept_id).eq(user_id)) .where( dept_id.in(Sql.create().select(dept_id).from(sys_dept)), Sql.create().select(dept_id).from(sys_dept).limit(1).eq(100) ) .orderBy(new QueryColumn("aaa").desc()) .list(TestEntity.class); System.out.println(JSONObject.toJSONString(list)); } @Data static class TestEntity { String aaa; String bbb; String ccc; String ddd; String eee; } }