-
Notifications
You must be signed in to change notification settings - Fork 0
Query
likly edited this page Jul 6, 2021
·
2 revisions
Final Annotation Query提供了丰富的查询条件(Criterion)和更新操作(Update)。
Final Annotation Query提供编码和注解两种方式来构建查询条件。
如当需要构建以下查询条件时:
WHERE name = #{value} AND age BETWEEN #{min} AND #{max}- 编码
new Query().where(
name.eq("name"),
age.between(min,max)
);- 注解
public class MyQuery implements IQuery{
@Equal
private String name;
@Between
private BetweenValue<Integer> age;
//setter and getter
//...
}支持的Criterion对下表所示:
| SQL | 方法 | 注解 |
|---|---|---|
column IS NULL |
isNull() |
@IsNull |
column IS NOT NULL |
isNotNull() |
@IsNotNull |
column = #{value} |
eq(value) |
@Equal |
column != #{value} |
neq(value) |
@NotEqual |
column < #{value} |
lt(value) |
@LessThan |
column <= #{value} |
lte(value) |
@LessThanEqual |
cloumn > #{value} |
gt(value) |
@GreatThan |
cloumn >= #{value} |
gte(value) |
@GreatThanEqual |
column LIKE #{value} |
like(value) |
@Like |
column NOT LIKE #{value} |
notLike(value) |
@NotLike |
column LIKE CONCAT('%',#{value},'%') |
contains(value) |
@Contains |
column NOT LIKE CONCAT('%',#{value},'%') |
notContains(value) |
@NotContains |
column LIKE CONCAT(#{value},'%') |
startsWith(value) |
@StartsWith |
column NOT LIKE CONCAT(#{value},'%') |
notStartsWith(value) |
@NotStartsWith |
column LIKE CONCAT('%',#{value}) |
endsWith(value) |
@EndsWith |
column NOT LIKE CONCAT('%',#{value}) |
notEndsWith(value) |
@NotEndsWith |
column IN (val[,val]...) |
in(values) |
@In |
column NOT IN (val[,val]...) |
nin(values) |
@NotIn |
column BETWEEN #{min} AND #{max} |
between(min,max) |
@Between |
column NOT BETWEEN #{min} AND #{max} |
notBetween(min,max) |
@NotBetween |
JSON_CONTAINS(column, value[,path]) |
jsonContains(value[,path]) |
@JsonContains |
!JSON_CONTAINS(column, value[,path]) |
notJsonContains(values[,path]) |
@NotJsonContains |