db-torque-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marc Lustig" <m...@marclustig.com>
Subject AW: torque-performance using cross-references
Date Mon, 20 Jan 2003 20:39:34 GMT
Thank you, that helped. So does this code

    Criteria c = new Criteria();
    c.addJoin(UserItemPeer.ITEM_ID,ItemPeer.ITEM_ID);
    c.add(UserItemPeer.USER_ID,user);
    doSelect...

result in that sql:

"SELECT item.* FROM item,user_item WHERE user_item.user_id=x AND
user_item.item_id=item.item_id"

?


> -----Urspr√ľngliche Nachricht-----
> Von: Campbell, Justin [mailto:jcampbell@profilesys.com]
> Gesendet: Montag, 20. Januar 2003 19:54
> An: 'Turbine Torque Users List'
> Betreff: RE: torque-performance using cross-references
>
>
> Marc -
>
> You can definitely do this using Criteria without the need for a SQL
> statement execution for each item in your user loop.
>
> Check out the join section in the Torque Criteria Howto:
> http://jakarta.apache.org/turbine/torque/criteria-howto.html
>
> This is assuming you're familiar with SQL joins. If you're not,
> let us know
> :)
>
> Good luck,
> Justin
>
> -----Original Message-----
> From: Marc Lustig [mailto:mail@marclustig.com]
> Sent: Monday, January 20, 2003 1:38 PM
> To: Torque Users List
> Subject: torque-performance using cross-references
>
>
> Hi,
> I have a general question regarding performance.
> In my Torque-BO-model I have a lot of cross-references /foreign-keys.
> For instance:
>
> TABLE user_item
> user_id|item_id
>
> TABLE item
> item_id|itemattribute
>
> Now what I need to do is getting all item's that belong to user x.
>
> The SQL would look like this:
> "SELECT item.* FROM item,user_item WHERE user_item.user_id=x AND
> user_item.item_id=item.item_id"
>
>
> My current Java-code looke like this:
>
>     Criteria c = new Criteria();
>     c.add(UserItemPeer.USER_ID,user);
>     List list = UserItemPeer.doSelect(c);
>     List r = new ArrayList();
>     for (int i=0;i<list.size();i++) {
>       r.add(((UserItem)list.get(i)).getItem());
>     }
>
> As you see, this requires a single SQL-query for each entry in user_item.
> Question: is it possible to this using a single Torque-method that makes a
> single query the way I mentioned above?
>
> Or is the only way to drop a JDBC Statement?
>
> Thanks.
> Marc
>
>
> --
> To unsubscribe, e-mail:
> <mailto:turbine-torque-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail:
> <mailto:turbine-torque-user-help@jakarta.apache.org>
>
> --
> To unsubscribe, e-mail:
<mailto:turbine-torque-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail:
<mailto:turbine-torque-user-help@jakarta.apache.org>


Mime
View raw message