Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public Condition mapFilterToCondition(String tableName, String filters) {
- Condition condition = DSL.trueCondition();
- String[] filterFields = filters.split(",");
- Table<?> table = PUBLIC.getTable(tableName);
- Field<?>[] fields = table.fields();
- for(String filterField : filterFields) {
- String[] filter = filterField.split("=");
- for(Field<?> field : fields) {
- String fieldName = filter[0].replaceAll("(.)(\p{Upper})", "$1_$2").toLowerCase();
- if(field.getName().equals(fieldName)) {
- if(field.getType() == String.class) {
- condition.and(table.field(field).like(filter[1]));
- } else if (Boolean.valueOf(filter[1])) {
- condition.and(table.field(field).isTrue());
- } else if (!Boolean.valueOf(filter[1])) {
- condition.and(table.field(field).isFalse());
- }
- }
- }
- }
- return condition;
- }
- public List<UserAccount> findAllByFilter(Condition condition, Pageable pageable) {
- return dsl.select()
- .from(USER_ACCOUNT)
- .where(condition)
- .limit(pageable.getPageSize())
- .offset((int) pageable.getOffset())
- .fetchInto(UserAccount.class);
- }
Add Comment
Please, Sign In to add comment