
Jean-Louis Leroy wrote:
Alp Mestan wrote:
You'll then introduce a "condition" DSEL to generate a predicate used by the where without creating like(), between() functions etc ?
Like this :
select((t.id)).from(t).where(t.name.like("pattern"))
select((t1.id, t2.id)).from((t1, t2, p)) .where((t1.income + t2.income).between(20, 40) && p.husband == t1.id && p.wife == t2.id)
Hmm. The double parentheses are needed because the argument separator role of the comma has priority over its role as an operator. It may become disturbing to have a mixture of cases where double parentheses are mandatory and cases where they are not...
I didn't follow the thread but you might consider square brackets instead: select[ t1.id, t2.id ].from[ t1, t2, p ] .where [ (t1.income + t2.income).between(20, 40) && p.husband == t1.id && p.wife == t2.id ]