Code: Select all
@Slf4j
@Controller
public class QueryController {
@QueryMapping
public Page Page(@Argument int page, @Argument int size) {
return Page.builder()
.info(
PageInfo.builder()
.page(page)
.size(size)
.build()
)
.build();
}
}
Code: Select all
@Getter
@Setter
@ToString
@Builder
@AllArgsConstructor
public class Page {
private PageInfo info;
private final List users;
private final List posts;
private final List comments;
}
In dieser Klasse wollte ich den Wert der Gesamteigenschaft ändern, aber die Antwort spiegelt nicht die neuen Werte wider, die angegeben wurden.
Code: Select all
@Slf4j
@Controller
public class PageUsersController {
@SchemaMapping(typeName = "Page")
public List users(Page page) {
final PageInfo pageInfo = page.getInfo();
// Set dynamic value for total.
pageInfo.setTotal(200);
return Collections.emptyList();
}
}
@Slf4j
@Controller
public class PagePostsController {
@SchemaMapping(typeName = "Page")
public List
posts(Page page) {
final PageInfo pageInfo = page.getInfo();
// Set dynamic value for total.
pageInfo.setTotal(100);
return Collections.emptyList();
}
}
Code: Select all
query MyQuery1 {
Page {
info {
total
}
users {
id
}
}
}
// Response
{
"data": {
"Page": {
"info": {
"total": 0 // Total should be 200
},
"users": []
}
}
}
< /code>
query MyQuery2 {
Page {
info {
total
}
posts {
id
}
}
}
// Response
{
"data": {
"Page": {
"info": {
"total": 0 // Total should be 100
},
"posts": []
}
}
}