如何在JAVA JPA Spring Boot中在一个SQL查询中选择多个数据
我有一个保存组列表的用户实体。每个组有两个列表:submissionDocumentType和reviewDocumentType。使用尽可能少的数据库调用为用户获取GroupDetails对象列表的最有效方法是什么(请参见下面的最终预期结果)
用户。java
public class User {
@Id
@GeneratedValue(generator ="uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String id;
@ManyToMany(mappedBy = "users")
private Set<UserGroup> userGroups;
用户组
public class UserGroup {
@Id
@GeneratedValue(generator ="uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String id;
@ManyToMany(mappedBy = "submissionUserGroups")
private List <DocumentType> submissionDocumentType;
@ManyToMany(mappedBy = "reviewUserGroups")
private List <DocumentType> reviewDocumentType;
GroupDetails。java
public class GroupDetails {
private String groupTitle;
private List<String> reviewDocTypes;
private List<String> submitDocTypes;
获取方法的预期响应
[
{
"groupTitle": "Group one",
"reviewDocTypes": [
"Prasymas Eazy",
"Prasymas Tgwz",
"Prasymas Gien",
"Prasymas Docs",
"Prasymas Ecyd",
"Prasymas Sjvz"
],
"submitDocTypes": [
"Prasymas Buor",
"Prasymas Kzhc",
"Prasymas Zokx",
"Prasymas Vvtb",
"Prasymas Docs",
"Prasymas Lutj",
"atostogu prasymas"
]
},
{
"groupTitle": "Group two",
"reviewDocTypes": [
"Prasymas Tgwz",
"Prasymas Gien",
"Prasymas Kzhc",
"Prasymas Kblj",
"Prasymas Docs",
"Prasymas Ecyd"
],
"submitDocTypes": [
"Prasymas Tgwz",
"Prasymas Wmwx",
"Prasymas Buor",
"Prasymas Gien",
"Prasymas Kzhc",
"Prasymas Kblj",
"Prasymas Docs",
"Prasymas Xdau",
"Prasymas Lutj",
"Prasymas Ecyd",
"atostogu prasymas"
]
}
]
# 1 楼答案
我想你可以在一个查询中完成。正如您在the reference documentation中看到的:
因此,我们可以使用如下查询方法获取结果: