Hi Christine,

I'm not familiar with the query part of OJB. Did you see the examples for escape handling in OJB test suite QueryTest#testLikeEscapedCriteria2().

This test look for Person objects containing '%' in the firstname field using a specific method to set the escape character:

LikeCriteria.setEscapeCharacter('|');
Criteria crit = new Criteria();
crit.addLike("firstname", "h%|%");
Query q = QueryFactory.newQuery(Person.class, crit);
Collection results = broker.getCollectionByQuery(q);

This will create a query like this:

SELECT A0.ID,A0.FIRSTNAME,A0.LASTNAME FROM PERSON A0 WHERE A0.FIRSTNAME LIKE 'h%|%' ESCAPE '|'

regards,
Armin


Christine Gerstenmayer wrote:
Second trial (first was two weeks ago)

Hi all,

please can you help me with this case ?

I want OJB to generate a sqlstatement like this:

SELECT *
FROM AdminLog A0 INNER JOIN CPMUser A1 ON A0.FK_UserID=A1.PK_UserID
WHERE (((A1.FK_InstituteID = 'xxx')
AND A1.Branch LIKE 'ABC\_XYZ' ESCAPE '\')
AND A0.LoginTimestamp >= '2005-06-30 12:30:04')
AND A0.LoginTimestamp <= '2005-06-30 13:04:02'
ORDER BY 1

AdminLog has a reference-descriptor to CPMUser via UserID and CPMUser has a
reference-descriptor to Institute via InstituteID. Branch is a column of
CPMUser

The Problem ist the escapesign and the word ESCAPE

I tried it without ESCAPE:

Criteria c = new Criteria();
c.addEqualTo("ref_AdminLog.ref_Institute." +
Institute.getpk_instituteidSQLName(), instituteId);
c.addLike("ref_User." + CPMUser.getbranchSQLName(), branch);
c.addGreaterOrEqualThan(AdminLog.getlogintimestampSQLName(),fromDate);
c.addLessOrEqualThan(AdminLog.getlogintimestampSQLName(), toDate);
return AbstractPersistency.selectOrderedByCriteria(AdminLog.class,
          c,
        new String[]{AdminLog.getlogintimestampSQLName()},
        new boolean[]{true});

Works fine, if there is no branch "ABC1XYZ" or so, but how do I get ESCAPE
into this statement ??

Please help.
Thanks in advance

Christine




---------------------------------------------------------------------
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