]
Flavio Botelho commented on HHH-2951:
-------------------------------------
Just stumbled on this same issue. Unbelievable that such a simple thing hasn't been
fixed yet,.
Or do you expect the programmer to go mentally thru all Restriction.eq in nullable
properties and add code to deal with nulls?
It's a trivial fix, just check for null and change for Restrictions.isNull
Restrictions.eq when passed null, should create a NullRestriction
-----------------------------------------------------------------
Key: HHH-2951
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2951
Project: Hibernate Core
Issue Type: Improvement
Components: query-criteria
Affects Versions: 3.2.1
Reporter: David Sheldon
Priority: Trivial
If you create a Restriction using eq, and pass null to it, then the generated SQL is
"where foo = null", which always returns false.
The programmer will almost certainly have intended to get "where foo is null".
Ideally, we could change:
public static SimpleExpression eq(String propertyName, Object value) {
return new SimpleExpression(propertyName, value, "=");
}
to
public static SimpleExpression eq(String propertyName, Object value) {
if (value == null) {
return isNull(propertyName);
}
else {
return new SimpleExpression(propertyName, value, "=");
}
}
Unforunately that wont work, as isNull doesn't return a SimpleExpression.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: