12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import com.alibaba.fastjson.JSONObject;
- import lombok.Data;
- import org.example.DromaraApplication;
- import org.example.join.model.query.function.DefaultFunction;
- import org.example.join.model.query.column.QueryColumn;
- import org.example.join.model.query.column.QueryColumnField;
- import org.example.join.model.query.column.QueryColumnFields;
- import org.example.join.model.table.Table;
- import org.example.join.model.table.SubqueryTable;
- 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() {
- SubqueryTable subqueryTable = Sql.create()
- .select(
- sysDeptAll,
- status
- )
- .from(sys_dept)
- .tableAs(sys_dept);
- List<TestEntity> list = Sql.create()
- //.logic()
- //.distinct()
- .select(
- dept_id.as(TestEntity::getAaa),
- subqueryTable.field(tenant_id).as(TestEntity::getBbb),
- subqueryTable.field("status").as("ccc"),
- Sql.create().select(groupConcat(new QueryColumn("{0} order by {0} asc", dept_id))).from(sys_dept).as("ddd"),
- concat("ssss", 333).as("eee")
- )
- .from(subqueryTable)
- .leftJoin(sys_user).on(subqueryTable.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;
- }
- }
|