Я работаю над проектом с GraphQL- java и Hibernate с MariaDB. В моем текущем решении я получаю 18938 результатов назад. Я просто хочу увидеть последние 10 из них. Поэтому я ищу решение для ограничения количества результатов.
На inte rnet Я вижу примеры ограничения количества результатов (https://graphql.org/learn/pagination/). Они называют это нумерацией страниц. Тем не менее, я не могу найти серверную реализацию этого. У кого-нибудь есть опыт с этим?
У меня есть класс Entity с некоторыми свойствами: Test. java
@Entity
@Table(name = "test")
public class Test {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
@Size(max = 64)
@Column(nullable = false)
private String name;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "parent")
private Test parent;
public Test() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Test getParent() {
return parent;
}
public void setParent(Test parent) {
this.parent = parent;
}
Мой класс репозитория: TestRepository. java
public interface TestRepository extends CrudRepository<Test, Integer> {}
Мой класс распознавателя GraphQL: Запрос. java
@Component
public class Query implements GraphQLQueryResolver {
private TestRepository testRepository;
@Autowired
public Query(TestRepository testRepository) {
this.testRepository = testRepository;
}
public Iterable<Test> findAllTests(Integer first) {
return testRepository.findAll();
}
public long countTests() {
return testRepository.count();
}
}
Моя схема GraphQL: test.graphqls
type Test {
id: ID!
name: String!
parent: Test
}
#extend query
type Query {
findAllTests(first: Int): [Test]!
countTests: Int!
}