У меня возникли проблемы с подключением 2 выраженияList с помощью «или». Это пример того, что я делаю:присоедините два выраженияList с помощью «или» или «и»
RelationGroup prg =...
ExpressionList<User> exp = User.find.where();
List<ExpressionList<User>> expressions = new ArrayList<ExpressionList<User>>()
List<String> relations = new ArrayList<String>()
while(prg != null){
if(prg.prevGroupRelation != null)
relations.add(prg.prevGroupRelation);
for(RelationAtt pra : prg.prAtt){
if(pra.rel.equals("eq"))
exp = exp.eq(pra.name, pra.value1);
else if(pra.rel.equals("lt"))
exp = exp.lt(pra.name, pra.value1);
else if(pra.rel.equals("gt"))
exp = exp.gt(pra.name, pra.value1);
else if(pra.rel.equals("bw"))
exp = exp.gt(pra.name, pra.value1).lt(pra.name, pra.value2);
}
expression.add(exp);
prg=prg.nextPRG();
exp = new ExpressionList<User>();
}
for(i=0;i<expressions.count-1; i++)
if(relations[i].equals("or")){
//ToDo: (expressions[i]) or (expressions[i+1])
}else{
//ToDo: (expressions[i]) and (expressions[i+1])
}
мне нужно иметь что-то вроде:
select *
from tableName
where (varName1=value and varName2=value) or (varName3) or (varName4=value and varName5=value)
Это полностью динамическое, поэтому имя переменной может быть любым из существующих в настоящее время (поскольку запросы создаются пользователем с использованием интерфейса веб-страницы), поэтому я не могу легко использовать необработанный SQL. Теперь мне нужно присоединиться к prevExp и exp с помощью or или и заменить exp. ExpressionList.or(exp, exp)
получают 2 выражения. Любая помощь с благодарностью благодарит вас