db-torque-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thoralf Rickert (JIRA)" <j...@apache.org>
Subject [jira] Created: (TORQUE-59) correctBooleans() overwrites complex boolean criteria
Date Mon, 09 Oct 2006 10:04:19 GMT
correctBooleans() overwrites complex boolean criteria
-----------------------------------------------------

                 Key: TORQUE-59
                 URL: http://issues.apache.org/jira/browse/TORQUE-59
             Project: Torque
          Issue Type: Bug
          Components: Runtime
    Affects Versions: 3.2
         Environment: MySQL 5
            Reporter: Thoralf Rickert


If you have a table with a nullable boolean column:

  <column name="test" type="booleanint" size="1"/>

and create a criteria like this:

    Criterion c1 = criteria.getNewCriterion(TEST, false, Criteria.EQUAL);
    Criterion c2 = criteria.getNewCriterion(TEST, null, Criteria.ISNULL);
    criteria.add(c1.or(c2));

then the createQueryString returns the correct toString() result with

   ...WHERE (TEST = 0 or TEST IS NULL) ...

but when you call doSelect(), it sends just TEST = 0 to the database.

The problem is in the generated correctBooleans(Criteria) method. It checks if the Criteria
contains one of the boolean column and replaces the criterion with an int value. So, in the
above situation it removes the Criteria.ISNULL part...that is not expected.

       .....
       if (criteria.containsKey(TEST))
        {
            Object possibleBoolean = criteria.get(TEST);
            if (possibleBoolean instanceof Boolean)
            {
                criteria.add(TEST, ((Boolean) possibleBoolean).booleanValue() ? 1 : 0);
            }
         }

The only possible workaround is to use the integer value (0,1) in the criterion (Criterion
c1 = criteria.getNewCriterion(TEST, 0, Criteria.EQUAL) ). But this is not expected, because
it is database specific.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org


Mime
View raw message