Skip to content

Commit bd6b10a

Browse files
committed
add Like support
1 parent a419e72 commit bd6b10a

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

springboot-starter-data-fast/src/main/java/com/codingapi/springboot/fast/jpa/repository/DynamicSQLBuilder.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,16 @@ private void buildSQL(Filter filter, StringBuilder hql) {
103103
params.add("%" + filter.getValue()[0] + "%");
104104
paramIndex++;
105105
}
106+
if (filter.isLeftLike()) {
107+
hql.append(filter.getKey()).append(" LIKE ?").append(paramIndex);
108+
params.add("%" + filter.getValue()[0]);
109+
paramIndex++;
110+
}
111+
if (filter.isRightLike()) {
112+
hql.append(filter.getKey()).append(" LIKE ?").append(paramIndex);
113+
params.add(filter.getValue()[0] + "%");
114+
paramIndex++;
115+
}
106116
if (filter.isIn()) {
107117
hql.append(filter.getKey()).append(" IN (").append("?").append(paramIndex).append(")");
108118
params.add(Arrays.asList(filter.getValue()));
@@ -140,4 +150,4 @@ private void buildSQL(Filter filter, StringBuilder hql) {
140150
public Object[] getParams() {
141151
return params.toArray();
142152
}
143-
}
153+
}

springboot-starter/src/main/java/com/codingapi/springboot/framework/dto/request/Filter.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,14 @@ public boolean isLike() {
5252
return relation == Relation.LIKE;
5353
}
5454

55+
public boolean isLeftLike() {
56+
return relation == Relation.LEFT_LIKE;
57+
}
58+
59+
public boolean isRightLike() {
60+
return relation == Relation.RIGHT_LIKE;
61+
}
62+
5563
public boolean isBetween() {
5664
return relation == Relation.BETWEEN;
5765
}

springboot-starter/src/main/java/com/codingapi/springboot/framework/dto/request/Relation.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ public enum Relation {
44

55
EQUAL,
66
LIKE,
7+
LEFT_LIKE,
8+
RIGHT_LIKE,
79
BETWEEN,
810
IN,
911
GREATER_THAN,

0 commit comments

Comments
 (0)