Spring Data - 自定义查询:计数和列表

时间:2016-07-01 04:15:12

标签: java spring jpa

我很难生成一个对象,根据两个表格为我提供数据。

表一

public class User {
    private String name;
//...
}

表二

public class Profile {
    @JoinColumn(name = "user_id")
    private User user;
}

目的

我需要一个对象来告诉我每个用户个人资料的名称和数量。

像(在JSON中):

[
    {"name":"John", "profiles":1 },
    {"name":"Maria", "profiles":5 },
    {"name":"Victor", "profiles":3 }
]

这样做的最佳解决方案是什么?

1 个答案:

答案 0 :(得分:2)

首先,创建一个将用于生成Json的bean:

public class ABean {
    private String name;
    private Integer profiles;

    // getters and setters here
}

然后,您的spring数据jpa查询将如下所示:

SELECT new ABean(p.user.name, count(p.id)) FROM Profile p JOIN p.user GROUP BY p.user.name