Skip to content

Commit 8cb9aad

Browse files
committed
Added a fix for the query filter
1 parent 0f6e7d1 commit 8cb9aad

File tree

1 file changed

+12
-18
lines changed

1 file changed

+12
-18
lines changed

src/main/java/org/javawebstack/orm/filter/DefaultQueryFilter.java

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,36 +20,30 @@ public DefaultQueryFilter(Map<String, String> filterable, List<String> searchabl
2020
}
2121

2222
public void filter(Query<? extends Model> query, Map<String, String> filter) {
23+
if(filter.size() == 0)
24+
return;
2325
TableInfo info = query.getRepo().getInfo();
2426
query.and(q -> {
25-
filter.keySet().stream().filter(filterable.keySet()::contains).forEach(key -> {
26-
boolean not = false;
27-
if(key.endsWith("!")) {
28-
key = key.substring(0, key.length()-1);
29-
not = true;
30-
}
31-
key = filterable.get(key);
32-
String v = filter.get(key);
33-
Field field = info.getField(key);
34-
if(field == null) {
27+
filter.forEach((key, v) -> {
28+
if(!filterable.containsKey(key))
3529
key = Helper.toCamelCase(key);
36-
field = info.getField(key);
37-
}
30+
if(!filterable.containsKey(key))
31+
return;
32+
Field field = info.getField(filterable.get(key));
3833
if(field == null)
3934
return;
4035
if(v.equals("null")) {
41-
if(not)
42-
q.whereNull(key);
43-
else
44-
q.whereNotNull(key);
36+
q.whereNull(key);
4537
return;
4638
}
4739
if(field.getType().equals(Boolean.class) || field.getType().equals(boolean.class)) {
48-
q.where(key, not ? "!=" : "=", v.equals("1") || v.equals("true"));
40+
q.where(key, "=", v.equals("1") || v.equals("true"));
4941
return;
5042
}
51-
q.where(key, not ? "!=" : "=", v);
43+
q.where(key, "=", v);
5244
});
45+
if(q.getQueryElements().size() == 0)
46+
q.where(1, "=", 1);
5347
return q;
5448
});
5549
}

0 commit comments

Comments
 (0)