У меня есть пользовательский объект, который содержит список групп.Каждая группа имеет два списка: submissionDocumentType и reviewDocumentType.Каков наиболее эффективный способ получить список объектов GroupDetails для пользователя, используя как можно меньше вызовов базы данных (см. Окончательный ожидаемый результат ниже)?
User.java
public class User {
@Id
@GeneratedValue(generator ="uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String id;
@ManyToMany(mappedBy = "users")
private Set<UserGroup> userGroups;
UserGroup
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;
Ожидаемый ответ от метода GET
[
{
"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"
]
}
]