Hallo,
ich habe folgenden HQL-Ausdruck:
from mypackage.OrganisationUnit$InternObject as obj where (obj.owner = '40288c97117ec49601117ec8ecac0025') and (obj.addFunctionInfo.startTimeStamp <= '2007-03-23 13:34:25.046') and ((obj.removeFunctionInfo is null) or (obj.removeFunctionInfo.startTimeStamp < '2007-03-23 13:34:31.953'))
Hierbei findet er ohne Fehlermeldung kein Objekt.
Ergebnis ist also eine leere Liste.
Wenn ich nun von dem "or"-Ausdruck die zweite Hälfte weglasse, dann bekomme ich als Ergebnis 2 Objekte.
from mypackage.OrganisationUnit$InternObject as obj where (obj.owner = '40288c97117ec49601117ec8ecac0025') and (obj.addFunctionInfo.startTimeStamp <= '2007-03-23 13:34:25.046') and ((obj.removeFunctionInfo is null) )
Meine boolsche Algebra ist schon lange her, aber das kann doch nicht sein.
Wenn (obj.removeFunctionInfo is null) wahr ist, dann ist es doch völlig schnuppe, ob (obj.removeFunctionInfo.startTimeStamp < '2007-03-23 13:34:31.953') jetzt wahr oder falsch ist.
Also hätte auch beim ersten Ausdruck 2 Ergebnisobjekte in der Liste erscheinen müssen.
Kann mir das einer erklären?
Ciao
Peter Schütt
|