db-torque-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Greg Monroe" <Greg.Mon...@DukeCE.com>
Subject RE: Problems executing BasePeer.doUpdate(Criteria, Criteria, Connection)
Date Mon, 08 Jan 2007 15:17:38 GMT
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


Mime
View raw message