db-torque-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Fischer <tfisc...@apache.org>
Subject RE: Problems executing BasePeer.doUpdate(Criteria, Criteria, Connection)
Date Sat, 13 Jan 2007 10:53:21 GMT
I agree we could push this mapping to a lower lever, probably using the 
database map instead of generated code. But still I'd guess that one weven 
wants a place where the column can be addressed as int or char and not as 

Just a crazy idea: Maybe we should introduce a defined layer for such 
mappings in 4.0. E.g. we could allow registering a "translator" class in 
the database map.


On Mon, 8 Jan 2007, Greg Monroe wrote:

> A couple of extra thought about this:
> We probably should think about fixing this for 4.0.  The
> current correctBooleans(criteria, tablemap) is really a
> work around for a Village limitation.  The Village free
> implimentation should handle booleans correctly at the
> lowest level.
> As to the current implimentation, I agree that it would
> add a lot of overhead to check all criterii at the BasePeer
> level.  The basic reason is that at this level, you don't
> know what table (if any) the column is associated with like
> you do in the generated Peer classes.
> That said, you might be able to simplify your application
> re-write by looking at the correctBooleans(Criteria, TableMap)
> method in the BasePeer.  Depending on how your criteria is
> created, you probably can modify this with some code to
> parse out the Table name and then locate the TableMap from
> the associated DatabaseMap.
> At least this would give you a single extra method to call.
>> -----Original Message-----
>> From: Thomas Fischer [mailto:fischer@seitenbau.net]
>> 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" <thilka@vps.de> 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:fischer@seitenbau.net]
>>> 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" <thilka@vps.de> 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: torque-dev-unsubscribe@db.apache.org
>>> For additional commands, e-mail: torque-dev-help@db.apache.org
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
>> For additional commands, e-mail: torque-dev-help@db.apache.org
> Duke CE Privacy Statement
> Please be advised that this e-mail and any files transmitted with it are confidential
communication or may otherwise be privileged or confidential and are intended solely for the
individual or entity to whom they are addressed.  If you are not the intended recipient you
may not rely on the contents of this email or any attachments, and we ask that you  please
not read, copy or retransmit this communication, but reply to the sender and destroy the email,
its contents, and all copies thereof immediately.  Any unauthorized dissemination, distribution
or copying of this communication is strictly prohibited.
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
> For additional commands, e-mail: torque-dev-help@db.apache.org

View raw message