Я собираюсь сделать некоторые предположения, поскольку вы не опубликовали свое сопоставление JPA, поэтому я предполагаю, что у каждого альбома есть List<YourImageClass> images
для сопоставления многих ко многим.С этим, что-то вроде этого будет работать.
select a, size(a.images) from Album a
Это вернет List<Object[]>
, где List.get(i)[0]
будет альбом, а List.get(i)[1]
будет соответствующий размер коллекции изображений.
В качестве альтернативы, вы можете определить простой бин для выбора.Что-то вроде
public class AlbumResult {
private Album album;
private Integer imageCount;
public AlbumResult( Album a, Integer size ) {
album = a;
imageCount = size;
}
// getters and setters here
}
Тогда вы могли бы сделать
select new AlbumResult(a, size(a.images)) from Album a;
Я никогда не имел дело с критериями запросов, но JPQL достаточно прост, его должно быть тривиально, чтобы перевести его в запрос критериев.