-----Original Message-----
From: Thomas Fischer [mailto:[EMAIL PROTECTED]
Sent: Monday, January 08, 2007 4:05 AM
To: Apache Torque Developers List
Subject: Antwort: Problems executing
BasePeer.doUpdate(Criteria, Criteria, Connection)
Hi Tobias,
As booleanints and booleanchars behave as ints in java but
are integers and chars in the database, there needs to be a
mapping somewhere in the database layer. The "high-level"
methods "above" the mapping point will take booleans, the
"low-level" methods "below" the mapping point will take
integers and chars as arguments. Unfortunately for you, the
doUpdate(Criteria, Criteria, Connection) method is below the
mapping point.
Which makes a certain sense in my eyes, because you have to
know the types of the columns in the table to use this method.
I know of no plans to change this behaviour.
Thomas
"Tobias Hilka" <[EMAIL PROTECTED]> schrieb am 08.01.2007 08:54:22:
Hi Thomas,
I am sure it works with Integer values. But it would be
very nice not
having
to think about converting booleanints and booleanchars when calling
this method. If this solution is not possible, I would have
to change
all occurrences of this call to use Integer values. But for
programmers just using Torque it is hard, always having to
know which
mehtod can be called with which kind of Boolean/Integer value.
Do you plan to change this behaviour?
Best regards,
Tobias
-----Urspr?ngliche Nachricht-----
Von: Thomas Fischer [mailto:[EMAIL PROTECTED]
Gesendet: Freitag, 5. Januar 2007 18:26
An: Apache Torque Developers List
Betreff: Antwort: Problems executing BasePeer.doUpdate(Criteria,
Criteria,
Connection)
If I remember correctly, the doUpdate(Criteria, Criteria,
Connection)
method
expects booleanints and booleancher being already converted
to Integer
and
Char. Have you tried using a new Integer(1) for true or a new
Integer(0) for false, respectively ?
Thomas
"Tobias Hilka" <[EMAIL PROTECTED]> schrieb am 05.01.2007 18:15:47:
Hello everyone,
We are having trouble executing the doUpdate(Criteria, Criteria,
Connection)
method from BasePeer. The update we want to perform is
changing the
value
of
a field of type BOOLEANINT and we use a Boolean object to express
the new state of the object in the update Criteria, we
get an error
conserning
the
value we want to insert in the table.
We tried it both, for MSSQL Server and Oracle, and each
time we got
an
error
message.
For MSSQL:
org.apache.torque.TorqueException:
com.workingdogs.village.DataSetException:
Bad conversion: java.lang.NumberFormatException: For input string:
"false"
at
org.apache.torque.util.BasePeer.throwTorqueException(BasePeer.
java:109)
at
org.apache.torque.util.BasePeer.insertOrUpdateRecord(BasePeer.
java:635)
at org.apache.torque.util.BasePeer.access$000(BasePeer.java:79)
at
org.apache.torque.util.BasePeer$4.process(BasePeer.java:1220)
at
org.apache.torque.util.BasePeer.processTables(BasePeer.java:1736)
at org.apache.torque.util.BasePeer.doUpdate(BasePeer.java:1215)
For Oracle:
Don't have the exact message any more, but something
like: Update to
null not possible.
Debugging this problem I found that there is a doUpdate(Criteria,
Connection) method for each BasePeer. Therein the method
correctBooleans(criteria) is called which replaces Boolean.TRUE to
Integer(1) and Boolean.FALSE to Integer(0). I can not
find this call
in
the
BasePeer.doUpdate(Criteria, Criteria, Connection) method.
Could it be that this call is missing there or is there any other
treatment
of this problem there?
Thank you for your help.
Have a nice weekend.
Tobias
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]