Я пытаюсь получить данные из таблицы TABLE_A, таблица Table_A содержит столбец BB_NUM.
Мне нужно написать выражение в JPA BooleanExpression,
Требуется для генерации ниже SQL-запроса из логики предикатов JPA:
**Select * from TABLE_A where BB_NUM like 'GA22'OR BB_NUM like 'GA33';**
И эти GA22 GA33 приходят динамически, так что это где условие динамически добавляется.
Ниже кода есть запись для динамического создания условия условия в выражении предиката, но этот код не работает,
boolean firstTime = true;
str = "GA22GA33";
BooleanExpression ent = null;
for (String array : str.split("GA")) {
if (StringUtils.isNotBlank(array)) {
if (firstTime) {
ent = qTABLE_A.BB_NUM.containsIgnoreCase("GA" + array.trim());
firstTime = false;
} else {
ent.or(qTABLE_A.BB_NUM.containsIgnoreCase("GA" + array.trim()));
}
}
}
expressions.add(ent);
Код выше работает как SQL,
**Select * from TABLE_A where BB_NUM like 'GA22';**
надо работать
**Select * from TABLE_A where BB_NUM like 'GA22' or BB_NUM like 'GA33';**