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.