I want to ask if somebody knows a workaround for this bug:
https://glassfish.dev.java.net/issues/show_bug.cgi?id=5171
I have written the following query:
SELECT DISTINCT a FROM A a WHERE (1=1) OR (a.fb.cb=?1)
Obviously the WHERE clause is "TRUE OR ...", so it should always return ALL values.
Actually, if a.fb contains NULL, then that row is mssing in the result set.
For me, TRUE OR NullPointerException should be still TRUE, since this is the
core idea of the OR statement. But it seems as if TopLink handles it
differently: "TRUE OR anything is TRUE until 'anything' is a NullPointerException".
(Actually the 1=1 is only a simulation to provoke and demonstrate the buggy
behaviour. Certainly the real query we are running is much more complex and does
not include a static 1=1 comparison. We just wrote 1=1 to demonstrate that the
OR is behaving very strange in case of NullPointerException).
This is very problematic, since we need to run queries of the form "If there is
an object referenced, check some fields of that object. If no object is linked,
just take the row as it is."
Since we do not see any workaround, this is an absolute showblocker for us.
Thanks a lot! :-)
Markus
QUIPSY QUALITY GmbH & Co. KG
Ein Unternehmen der MES-Gruppe
Stuttgarter Strasse 23
D-75179 Pforzheim
Tel: 07231-9189-52
Fax: 07231-9189-59
www.quipsy.de
karg_at_quipsy.de
Registergericht Mannheim HRA 701214
Geschäftsführer: Nils Schroeder
Diese E-Mail enthält persönliche, vertrauliche und vor Weitergabe geschützte Informationen und ist ausschließlich für den vorgesehenen o.g. Empfänger (Adressaten) bestimmt. Falls Sie diese E-Mail versehentlich erhalten haben und nicht der vorgesehene Empfänger sind, bitten wir Sie, die E-Mail und deren Anhänge nicht aufzubewahren, nicht zu vervielfältigen, nicht zu nutzen und nicht weiterzugeben. Bitte informieren Sie uns als Absender über diesen Zustellungsfehler und löschen Sie die E-Mail.