]
David Sheldon commented on HHH-2951:
------------------------------------
Does that compile? isNull returns a NullExpression, not a SimpleExpression which is the
return type of eq.
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
Attachments: hibernate_restrictions.patch
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: