Re: AW: OJB criteria fails with Oracle char field right filled with spaces

2003-03-19 Thread gfaerman
Max,

Thanks for your recommendation.
Sometimes, database design is a fixed variable, therefore you cannot alter
database design  (this database  is actually in use from some other apps).
It seems that Jakob´s tips is the right path (hope it works even when
changing back-end RDBMS ).

Again, thank you very much.
Gustavo.



   
  
"Geigl 
  
Maximilian,To: "OJB Users List" <[EMAIL 
PROTECTED]> 
R235"  cc: 
  
  with spaces
  
   
  
19/03/2003 14:20   
  
Please respond 
  
to "OJB Users  
  
List"  
  
   
  
   
  




Hi,

we switched to VARCHAR2 (instead of CHAR) for the same reason; maybe more
convenient than using  trim() all the time.

Regards
Max

> -Ursprüngliche Nachricht-
> Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Gesendet: Mittwoch, 19. März 2003 16:56
> An: 'OJB Users List'
> Betreff: OJB criteria fails with Oracle char field right filled with
> spaces
>
>
> 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]



AW: OJB criteria fails with Oracle char field right filled with spaces

2003-03-19 Thread Geigl Maximilian, R235
Hi,

we switched to VARCHAR2 (instead of CHAR) for the same reason; maybe more convenient 
than using  trim() all the time.

Regards
Max

> -Ursprüngliche Nachricht-
> Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Gesendet: Mittwoch, 19. März 2003 16:56
> An: 'OJB Users List'
> Betreff: OJB criteria fails with Oracle char field right filled with
> spaces
> 
> 
> 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]



Re: OJB criteria fails with Oracle char field right filled with spaces

2003-03-19 Thread gfaerman
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/2003with 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]



Re: OJB criteria fails with Oracle char field right filled with spaces

2003-03-19 Thread Jakob Braeuchi
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]


OJB criteria fails with Oracle char field right filled with spaces

2003-03-19 Thread gfaerman
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]