Adam Heath-2 wrote:
> 
>> If we can provide a generic solution, this will be a good add-on. Please
>> share your views.
> 
> Is it possible that some jdbc metadata parameter can specify whether
> the database supports this?
> 

The patch contains a parameter:

+        use-order-by-nulls="true">

for this purpose.  For the databases listed it will generate a database
native "NULLS FIRST/LAST" statement as part of the order by clause.  For the
other databases (the ones where this property is not set or is set to
"false") it will generate a case:

+        if ((nullsFirst != null) && (!datasourceInfo.useOrderByNulls)) {
+            sb.append("CASE WHEN ");
+            getValue().addSqlValue(sb, modelEntity, null,
includeTablenamePrefix, datasourceInfo);
+            sb.append(" IS NULL THEN ");
+            sb.append(nullsFirst ? "0" : "1");
+            sb.append(" ELSE ");
+            sb.append(nullsFirst ? "1" : "0");
+            sb.append(" END, ");
+        }
+        

It should be noted that this generation only occurs if the "nulls" is
explicitly specified on the order-by clause.  I thought about always
generating this snippet to support a "default sorting behaviour" across all
databases, but I did not want to alter existing sql statements without a
discussion on that.  So with this patch one can explicitly specify how they
want nulls sorted and it should work for all databases.
-- 
View this message in context: 
http://ofbiz.135035.n4.nabble.com/Bug-Not-Null-Values-are-at-top-when-fetching-list-from-database-in-Release-9-04-tp2062221p2134052.html
Sent from the OFBiz - Dev mailing list archive at Nabble.com.

Reply via email to