Hallo,
ich bin auf folgendes unschöne Verhalten von Restrictions gestossen.
Wird
Code:
Restrictions.in("id", idCollection)
mit leerer idCollection verwendet, wird ein ungültiges SQL an die Datenbank abgesetzt:
Code:
id in ()
und damit ein SQL Fehler erzeugt.
Erwartet hätte ich aus Objektsicht: Bedingung nicht erfüllt -> leere Liste als Ergebnis.
Als Workaround: leere Collection gesondert behandeln.
Schöner wäre meiner Meinung nach:
Die Methode toSqlString in der Klasse InExpression im Fall
Code:
values.length==0
einen SqlString liefern lassen der eindeutig false ist.
Oder wenigstens die Bedingung "Collection darf nicht leer sein" in der API dokumentieren.
Gruß Uevchen