when a createQueryString method composes a query it gets all values of Criterions as Strings calling value.toString();
a Record.toString() will result a string like this "{'1000'}" (see toString() method of Record). If you have questions about Record and why toString() is made this way, send a message to one of the Village folks.
Regards, Kostya
Chris Joelly wrote:
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]
