我有一个默认的spring web MVC应用程序,我正在使用JPA,有时我需要创建某种Summary视图页面,例如:我有三个对象(在我的情况下我有很多)House,Car和人,在这个例子中,众议院有汽车和人,所以在我的页面视图中我需要做类似
的事情House 1: 5 Cars, 6 Persons
House 2: 3 Cars, 3 Persons
House 3: 6 Cars, 2 Persons etc...
我正在考虑使用本机查询,因为我对SQL查询非常好,所以没有问题,但是JPA没有像字符串MAP那样返回的内容,我对此一无所知JPA表现。
答案 0 :(得分:1)
JPA查询
SELECT
h
, COUNT(c)
, COUNT(p)
FROM
House h
LEFT JOIN
h.cars c
LEFT JOIN
h.persons p
GROUP BY
h
可以entityManager.createQuery(query).getResultList()
执行,以获得List<Object[]>
。
List
的每个元素都是一个包含三个值的数组(对应于SELECT
子句中的三个值)。第一个值的类型为House
(由于SELECT h
),而第二个和第三个值的类型为Long
。
查询性能与从同一应用程序运行本机查询不会有太大的不同,因为从JPQL到SQL的转换非常快。