Hi Tino,
with this method all is ok, the problem was that Chris wanted to add dicertly a List with Records and not Integers. When BasePeer composes query each Criterion value is converted to String. Village's Record.toString() is implemented so that each Record field is surrounded with {}. E.g. if it contains an Integer it will be something like "WHERE ID = {1000}".


Regards,
Kostya

Sperlich, Tino wrote:
Hi Chris.

you have probably fixed the problem; but just for my info:
in the API of criteria there is a method like this

public Criteria addNotIn(java.lang.String column,
                         java.util.List values)

is there something wrong with this or would that do the job, too?

Kind regards,

Tino Sperlich



-----Urspr�ngliche Nachricht-----
Von: Chris Joelly [mailto:[EMAIL PROTECTED]
Gesendet: Freitag, 27. Februar 2004 16:02
An: Apache Torque Users List
Betreff: Re: Torque, building Criteria for query ...


Hi Kostya!


i managed to use the following code for the query:

        Criteria critEreignisse = new Criteria();
        critEreignisse.setDistinct();
        critEreignisse.addSelectColumn(EreignisPeer.DATEITYP_ID);
        critEreignisse.add(EreignisPeer.INT_IAKZ, int_iakz);
        
        List dateitypIds = BasePeer.doSelect(critEreignisse);
        Iterator i = dateitypIds.iterator();
                                
        int[] dt = new int[dateitypIds.size()];
        
        for (int c = 0; c < dateitypIds.size(); c++) {
                 dt[c] = ((Record) dateitypIds.get(c)).getValue(1).asInt();
        }
        
        Criteria critDateitypen = new Criteria();
        critDateitypen.addNotIn(Dateityp2aktenartPeer.DATEITYP_ID, dt);

as you can see i use the addNotIn method to add an int[], but why can't
i use the addNotIn method with the returned List itself?

eg: critDateitypen.addNotIn(Dateityp2aktenartPeer.DATEITYP_ID, dateitypIds);

thx, Chris

Am Fri, Feb 27, 2004 at 09:54:23AM +0100, Kostyantyn Shchekotykhin meinte:

Criteria object doesn't support inner queries, because not all databases support them. So you can try something this like this, but remember that this solution highly depends on your database:

Criteria criteria = new Criteria();
criteria.setDistinct();
criteria.addSelectColumn(YourPeer.COL1);
criteria.add(YourPeer.COL2, "value1");
Criteria criteria2 = new Criteria();
criteria2.add(YourPeer2.COL1, (Object)(YourPeer2.COL1 + " NOT IN " + BasePeer.createQueryString(criteria)), Criteria.CUSTOM);
YourPeer2.doSelect(criteria2);



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



Reply via email to