My query is this:
String queryString =
"select destination, routeTraversal " +
"from " + TransportRole.class.getName() + " transportRole " +
"join transportRole.macroEntityTransfers entity " +
"join entity.origin origin " +
"join entity.destination destination " +
"join transportRole.trips trip " +
"join trip.childActions routeTraversal " +
"where (trip.startTime >= :startTime and trip.endTime <= :endTime) or "+
"(trip.startTime >= :startTime and trip.startTime < :endTime) "+
"and (origin.objectKey = :thisKey) " +
"and (destination.objectKey in (" + value + ")) " +
"and (routeTraversal.class = :routeElementTraversal) " +
"group by destination.name";
List traversals = session.createQuery(queryString).
setParameter("thisKey", storageContainerRoleID).
setLong("startTime", startTime).
setLong("endTime", endTime).
setParameter("routeElementTraversal", RouteElementTraversal.class.getName()).
list();
The query works correctly when 'value' only has one objectKey. However, when it has more than that, it only selects one of the destinations and its routeTraversal. Does anyone know why this is? Thanks for the help.
|