problem with ResourceTypeCriteria
John Mazzitelli
mazz at redhat.com
Sat Oct 23 19:08:02 UTC 2010
I don't get it. I run this code, and each System.out.println shows me
that the results have 48 rows - but each query should only produce 1 row.
Note: if I go to admin/test/hibernate.jsp, and try this JPQL string, it
actually only produces 1 row (the correct results!). I don't know what
its doing differently, but here's the code that I tested with - there
are actually 4 different ways I try it (two using JPA API, two using
Hibernate API - for each I try using a collection of 1 ID integer, and I
try using a single parameter value of Integer type).
String sqlString = "SELECT resourcetype " + //
"FROM ResourceType resourcetype " + //
"LEFT JOIN FETCH resourcetype.resourceConfigurationDefinition " + //
"LEFT JOIN FETCH resourcetype.metricDefinitions " + //
"LEFT JOIN FETCH resourcetype.eventDefinitions " + //
"LEFT JOIN FETCH resourcetype.operationDefinitions " + //
"WHERE ( resourcetype.id in ( :ids ) ) ";
ArrayList<Integer> idList = new ArrayList<Integer>();
idList.add(new Integer(10014));
Query q;
List<?> results;
// JPA - parameter is an ArrayList of 1 ID
q = entityManager.createQuery(sqlString);
q.setParameter("ids", idList);
results = q.getResultList();
System.out.println("1~~~~~~~~~size=" + results.size());
// JPA - parameter is a single Integer value
q = entityManager.createQuery(sqlString);
q.setParameter("ids", new Integer(10014));
results = q.getResultList();
System.out.println("2~~~~~~~~~size=" + results.size());
Session session;
org.hibernate.Query hq;
session = (Session) entityManager.getDelegate();
// Hibernate - parameter is an ArrayList of 1 ID
hq = session.createQuery(sqlString);
hq.setParameterList("ids", idList);
results = hq.list();
System.out.println("3~~~~~~~~~size=" + results.size());
// Hibernate - parameter is a single Integer value
hq = session.createQuery(sqlString);
hq.setParameter("ids", new Integer(10014));
results = hq.list();
System.out.println("4~~~~~~~~~size=" + results.size());
More information about the rhq-devel
mailing list