@RequestMapping("/api/test")为例:
POST /api/test/_batch
Content-Type: application/json
[
{
"name":"value"
}
]
@RequestMapping("/api/test")为例:
POST /api/test/_batch
Content-Type: application/json
[
{
"name":"value"
}
]
// join on t.age > d.max_age
applyColumn(MyEntity::getAge,"gt",Detail::getMaxAge)
// join detail d on d.age > d2.max_age
applyColumn(Detail::getAge,"gt","d2",Detail::getMaxAge)
Mono<Integer> result = service
.createDelete()
.where(MyEntity::getName,name)
.in(MyEntity::getState,state1,state2)
.execute()
Flux<MyEntity> flux = service
.createQuery()
.where(MyEntity::getName,name)
.in(MyEntity::getState,state1,state2)
.fetch()
Mono<Integer> result = service
.createUpdate()
.set(entity::getState)
.where(MyEntity::getName,name)
.in(MyEntity::getState,state1,state2)
.execute()
// join t1 on t1.id = t2.id
fullJoin(DetailEntity.class,spec->spec.is(MyEntity::getId,DetailEntity::getId)
// join detail d on d.max_age > t.age
gt(DetailEntity::getMaxAge,MyEntity::getAge)
// join detail d on d.max_age > t2.age
gt(DetailEntity::getMaxAge,"t2",MyEntity::getAge)
// join detail d on d.max_age >= t.age
gte(DetailEntity::getMaxAge,MyEntity::getAge)
// join detail d on d.max_age >= t2.age
gte(DetailEntity::getMaxAge,"t2",MyEntity::getAge)
// inner join detail on my.id = detail.id
innerJoin(DetailEntity.class,spec->spec.is(MyEntity::getId,DetailEntity::getId)
// join detail d on d.id = t.id
is(DetailEntity::getId,MyEntity::getId)
// join detail d on d.id = d2.id
is("id","d2",MyEntity::getId)
// left join detail on my.id = detail.id
leftJoin(DetailEntity.class,spec->spec.is(MyEntity::getId,DetailEntity::getId)
// join detail d on d.max_age < t.age
lt(DetailEntity::getMaxAge,MyEntity::getAge)
// join detail d on d.max_age < t2.age
lt(DetailEntity::getMaxAge,"t2",MyEntity::getAge)
// join detail d on d.max_age <= t.age
lte(DetailEntity::getMaxAge,MyEntity::getAge)
// join detail d on d.max_age <= t2.age
lte(DetailEntity::getMaxAge,"t2",MyEntity::getAge)
// order by a.index asc
orderBy("a.index",SortOrder.Order.asc);
// order by sort_order desc
orderBy(MyEntity::getSortOrder,SortOrder.Order.desc)
// order by a.index asc
orderByAsc("a.index");
// order by sort_order asc
orderByAsc(MyEntity::getSortOrder)
// order by a.index desc
orderByDesc("a.index");
// order by sort_order desc
orderByDesc(MyEntity::getSortOrder)
SyncRepository的查询控制器.
// select a.id as `a.id` ,b.name as b.name from table_a a
// left join table_b b on a.id=b.id
// where b.name like 'zhang%'
Flux<R> = helper
.select(R.class)
.as(A::getName,R::setName)
.as(A::getId,R::setAid)
.from(A.class)
.leftJoin(B.class,spec-> spec.is(A::id, B::id))
.where(dsl->dsl.like(B::getName,'zhang%'))
.fetch();
使用原生SQL方式来构建动态条件查询
helper
.select("select * from table_a a left join table_b b on a.id=b.id",R::new)
.where(dsl->dsl.like(R::getName,'zhang%'))
.fetch();
MyEntity::getId
MyEntity::setId
ReactiveRepository的响应式查询控制器.ReactiveRepository提供默认的新增,保存,修改接口.ReactiveCrudService提供默认的新增,保存,修改接口.QueryParamEntity动态条件来重构SQL,将根据动态条件添加where条件,排序等操作.QueryParamEntity动态条件来重构用于查询count的SQL,通常用于分页时查询总数.
// left join detail on my.id = detail.id
rightJoin(DetailEntity.class,spec->spec.is(MyEntity::getId,DetailEntity::getId)
QueryHelper.select(String, Object...)相同,将查询结果转换为指定的实体类?CrudService的查询控制器.@RequestMapping("/api/test")为例:
PUT /api/test/{id}
Content-Type: application/json
{
"name":"value"
}
@RequestMapping("/api/test")为例:
PUT /api/test/{id}
Content-Type: application/json
{
"name":"value"
}
helper
.select("select * from table t")
.where(dsl->dsl.is("type","device"))
helper
.select("select * from table t")
.where(param)
.fetch()
Copyright © 2016–2023. All rights reserved.