2012-05-11 4 views

Antwort

6
where(e1.and(e2).or(e3.and(e4))) 
+0

Es ist wahr, dass dies gleichwertige logische Formel wie oben ist, aber nicht das Gleiche. Was ist, wenn ich eine SQL-Anweisung generieren möchte, die mit Klammern beginnt, obwohl sie ohne sie logisch der Formel entspricht? – csviri

+0

Querydsl garantiert, dass Ausdrücke in der richtigen Weise zu SQL serialisiert werden, so dass Sie sich keine Sorgen um Paranthesis machen müssen. –

+2

"Ich brauche mir keine Sorgen zu machen" klingt für mich ein bisschen knifflig. Ich weiß nie, ob 'wo (e1.oder (e2) .und (e3))' '(e1 oder e2) und e3)' oder 'e1 oder (e2 und e3)' bedeutet. Ich war wirklich überrascht, dass "where (e1.or (e2) .and (e3.or (e4)))" (e1 oder e2) und (e3 oder e4) "produziert", was ich eigentlich wollte. Aber wie war das erste ODER in Klammern? Basierend worauf? Machen '... und (e3.oder (e4))' 'einen Unterschied für ... und (e3) .oder (e4)' dann? Wir überprüfen im Allgemeinen unsere Abfragen im Protokoll, aber ich würde gerne etwas Konkreteres über diese Serialisierung finden. – virgo47

Verwandte Themen