如何使用JpaRepository在xml中以命名nativ查询的形式返回地图
问题描述:
我需要每天查询一些计数,并且我想创建将在地图中返回此数据的命名的本机查询。我怎样才能做到这一点 ?如何使用JpaRepository在xml中以命名nativ查询的形式返回地图
<named-native-query name="getLeadNumberByDayInDateRange" result-set-mapping="map">
<query>
SELECT addeddate,
Count(DISTINCT campaignid, email) AS count
FROM leads
GROUP BY addeddate
</query>
</named-native-query>
,所以我在XML编写查询,我想补充到JpaRepository这样的:
@Query
public Map<LocalDateTime, Integer> getLeadNumberByDayInDateRange();
答
要做到这一点与命名的查询可以这样做:
@Query("SELECT l.addeddate, Count(DISTINCT l.campaignid)
FROM leads l
GROUP BY l.addeddate")
public Map<LocalDateTime, Integer> getLeadNumberByDayInDateRange();
或类似的东西:
@NamedQuery(name = "getLeadNumberByDayInDateRange",
query = "SELECT l.addeddate, Count(DISTINCT l.campaignid)
FROM leads l
GROUP BY l.addeddate")
public Map<LocalDateTime, Integer> getLeadNumberByDayInDateRange();
或者如果你想要一些自定义映射,你可以使用[sql result set mappings]。 1
当我尝试这个我得到:引起:org.hibernate.hql.internal.ast.QuerySyntaxException:期待CLOSE,发现','在第1行第48列[SELECT l.addeddate,Count(DISTINCT l。 campaignid,l.email)为count FROM FROM l GROUP BY l.addeddate]。你能帮我做到这一点在XML? – user3364181
只给出DISTINCT一个参数。那样有用吗? –
以及我需要这些2值的独特组合,所以我必须给它2个参数 – user3364181