After digging into the code I have a fix, of sorts. In
transfer.com.sql.SQLValue in the method getPropertyColumnValue at the
bottom it detects if the input query was null but not the actual
value, e.g. the property value in question. The existing code is:
if(arguments.query.wasNull()) {
return getNullable().getNullValue(arguments.object.getClassName(),
arguments.property.getName());
}
But if I change it to ALSO test the actual property value:
if(arguments.query.wasNull() OR getNullable().hasNullValue
(arguments.object.getClassName(), arguments.property.getName())) {
return getNullable().getNullValue(arguments.object.getClassName(),
arguments.property.getName());
}
Then it all works and I got dump the memento struct and my default
value as defined in the XML gets applied.
The only problem is that the "hasNullValue" method on Nullable.cfc is
defined as private so I had to open it up to public so I could access
it from SQLValue.
/Cody