openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christian Defoy" <christian.de...@gmail.com>
Subject Re: Getting a group of entities by ID
Date Wed, 18 Jul 2007 18:43:23 GMT
Hi Marc,

Thanks for the tip.  It works fine!  That's the functionality I was looking for!

I changed the query a bit because it looks like we have to enclose
that specific parameter in ().
    em.createQuery("SELECT x FROM shape x WHERE x.id in (:ids)");

Thank you both for your time!

Christian

On 7/18/07, Marc Prud'hommeaux <mprudhom@apache.org> wrote:
> Christian-
>
> In additional to what David said, I think should be able to do:
>
>    em.createQuery("SELECT x FROM shape x WHERE x.id in :ids").
>       setParameter("ids", Arrays.asList(new Integer[] { 1, 2, 3 })).
>       getResultlist();
>
>
>
>
>
>
> On Jul 18, 2007, at 7:22 AM, David Ezzio wrote:
>
> > Hi Christian,
> >
> > You might consider using the OpenJPAEntityManager.findAll method.  The
> > expected advantage is that any objects in the datacache won't cause a
> > hit to the database.  If there is a high likelihood that all
> > objects are
> > in the datacache, then this is definitely the way to go.  If some
> > objects will very likely not be in the cache, then you might want to
> > investigate.  I'm not sure whether it will generate one SQL statement
> > for all missing objects or one for each.  You might want to turn on
> > SQL
> > logging to check,
> >
> > ((OpenJPAEntityManager) em).findAll(...)
> >
> > Hope this helps,
> >
> > David
> >
> > Christian Defoy wrote:
> >> Hello,
> >>
> >> I can't find an easy way of retrieving a group of entities by
> >> specifying only their IDs. For example, if I want to get shapes with
> >> IDs 1, 2, 4 and 6, do I have to do the following query or is there a
> >> better way?
> >>
> >> SELECT x FROM shape x WHERE x.id = 1 OR x.id = 2 OR x.id = 4 OR
> >> x.id = 6
> >>
> >> I was thinking of something more along the lines of the IN SQL
> >> statement ("WHERE x.id IN (1,2,4,6)") but I haven't found anything to
> >> do this.  Using SQL queries, I was able to retrieve my shapes but
> >> OpenJPA does one select to retrieve the IDs (my SQL query with the IN
> >> clause) and then one select per shape it retrieves.  That is no
> >> different than me doing a find for every shape myself...
> >>
> >> Thanks in advance!
> >>
> >> Christian
> >>
> >
> >
> > Notice:  This email message, together with any attachments, may
> > contain information  of  BEA Systems,  Inc.,  its subsidiaries
> > and  affiliated entities,  that may be confidential,  proprietary,
> > copyrighted  and/or legally privileged, and is intended solely for
> > the use of the individual or entity named in this message. If you
> > are not the intended recipient, and have received this message in
> > error, please immediately return this by email and then delete it.
>
>

Mime
View raw message