Hi Jakob,

Thank you very much for your help. It worked.
I did not know I could use trim right there. Any pointer to the OBJ
documentation where I can read more about this?

Best Regards,
Gustavo.



                                                                                       
                            
                    Jakob Braeuchi                                                     
                            
                    <[EMAIL PROTECTED]       To:     OJB Users List <[EMAIL 
PROTECTED]>                           
                    .ch>                 cc:                                           
                            
                                         Subject:     Re: OJB criteria fails with 
Oracle char field right filled   
                    19/03/2003            with spaces                                  
                            
                    13:30                                                              
                            
                    Please respond                                                     
                            
                    to "OJB Users                                                      
                            
                    List"                                                              
                            
                                                                                       
                            
                                                                                       
                            




hi gustavo,

why can't you use trim or an equivalent oracle-function to get rid of
the spaces ?

mycrit.addEqualTo("trim(firstName)", "Gustavo");


hth
jakob




[EMAIL PROTECTED] wrote:

>Hi all,
>
>We are using OJB, Oracle 9i. When trying to retrieve an object by
criteria,
>OJB is not finding the requested object since the CHAR fields are right
>filled with spaces.
>
>Just an example:
>
>oracle table emp
>field name: FIRST_NAME(CHAR10)
>
>object Emp, attribute firstName
>
>Object/Record to to retrieve should have firstName = Gustavo (this was
>stored using OJB; Oracle fills with spaces to the right of the user
>inserted string in a CHAR field)
>
>This will work: OJB will return the object if criteria sets emp.firstName
>to "Gustavo   " (note the 3 spaces at the right):
>Criteria mycrit = new Criteria();
>mycrit.addEqualTo("firstName", "Gustavo   ");
>Query myquery = new QueryByCriteria(emp.class, mycrit);
>myemp= (Emp)broker.getObjectByQuery(myquery);
>
>This will not work: OJB will fail to return the object if criteria is set
>to emp.firstName = "Gustavo" (no spaces).
>Criteria mycrit = new Criteria();
>mycrit.addEqualTo("firstName", "Gustavo");
>Query myquery = new QueryByCriteria(emp.class, mycrit);
>myemp= (Emp)broker.getObjectByQuery(myquery);
>
>Problem here is that the java coder has to know the database field lenght
>in order to fill the string with the right number of spaces. It´s our
>understanding that OJB should take care of the the object.attribute ==>
>RDBMS mapping without requiring the programmer to take care of things like
>this.
>
>We´ve tested setting criteria to SQL string and it works, but again, this
>approach requires us  to "wire"  some database specific things like field
>names to our java code.
>
>Criteria mycrit = new Criteria();
>crit.addSql("FIRST_NAME = 'Gustavo'");
>Query query = new QueryByCriteria(Usuario.class, crit);
>myemp = (Emp) broker.getObjectByQuery(query);
>
>Are we missing something here? Any ideas?
>
>Thanks in advance
>
>Gustavo Faerman
>Buenos Aires,
>Argentina.
>
>
>---------------------------------------------------------------------
>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]






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to