Skip to content
This repository was archived by the owner on Aug 1, 2025. It is now read-only.

Commit 1b06e85

Browse files
committed
Fix paging response metadata bug, patch UUID issue
1 parent 773b307 commit 1b06e85

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

src/main/java/org/brapi/test/BrAPITestServer/converter/JsonbConverter.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ public class JsonbConverter implements AttributeConverter<Object, String> {
1717
@Override
1818
public String convertToDatabaseColumn(Object jsonb) {
1919
try {
20-
return mapper.writeValueAsString(jsonb);
20+
if (jsonb != null) {
21+
return mapper.writeValueAsString(jsonb);
22+
}
23+
return null;
2124
} catch (JsonProcessingException e) {
2225
throw new RuntimeException(e);
2326
}

src/main/java/org/brapi/test/BrAPITestServer/repository/BrAPIRepositoryImpl.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,21 +65,21 @@ public Page<T> findAllBySearchPaginatingWithFetches(SearchQueryBuilder<T> search
6565
applyUserId(searchQuery);
6666

6767
// First grab all the ids of the entities according to the criteria of the searchQuery, paging as specified in the pageReq.
68-
List<UUID> content = getPagedContentIdsOnly(searchQuery, pageReq);
68+
List<String> content = getPagedContentIdsOnly(searchQuery, pageReq);
6969
Long totalCount = getTotalCount(searchQuery);
7070

71-
Page<UUID> pagedIds = new PageImpl<>(content, pageReq, totalCount);
71+
Page<String> pagedIds = new PageImpl<>(content, pageReq, totalCount);
7272

7373
// Now execute another query to fetch all the entities requested in the searchQuery, passing the pagedIds found
7474
// in the previous query. We will fetch them utilizing the ids from the paged query, avoiding the hibernate
7575
// warning of paging while fetching and consuming considerably less memory.
7676
return findAllBySearchUsingIds(searchQuery, pagedIds, pageReq);
7777
}
7878

79-
private Page<T> findAllBySearchUsingIds(SearchQueryBuilder<T> searchQuery, Page<UUID> pagedIds, Pageable pageReq) {
79+
private Page<T> findAllBySearchUsingIds(SearchQueryBuilder<T> searchQuery, Page<String> pagedIds, Pageable pageReq) {
8080
List<T> entities = searchEntitiesWithIds(searchQuery, pagedIds.toList());
8181

82-
return new PageImpl<>(entities, pageReq, pagedIds.getSize());
82+
return new PageImpl<>(entities, pageReq, pagedIds.getTotalElements());
8383
}
8484

8585
/**
@@ -162,7 +162,7 @@ private List<T> getPagedContent(SearchQueryBuilder<T> searchQuery, Pageable page
162162
return query.getResultList();
163163
}
164164

165-
private List<T> searchEntitiesWithIds(SearchQueryBuilder<T> searchQuery, List<UUID> ids) {
165+
private List<T> searchEntitiesWithIds(SearchQueryBuilder<T> searchQuery, List<String> ids) {
166166
searchQuery.appendList(ids.stream().map(Object::toString).collect(Collectors.toList()), "id");
167167

168168
TypedQuery<T> query = entityManager.createQuery(searchQuery.getQuery(), searchQuery.getClazz());
@@ -186,9 +186,9 @@ private void setQueryParams(TypedQuery<T> query, SearchQueryBuilder<T> searchQue
186186
}
187187
}
188188

189-
private List<UUID> getPagedContentIdsOnly(SearchQueryBuilder<T> searchQuery, Pageable pageReq) {
189+
private List<String> getPagedContentIdsOnly(SearchQueryBuilder<T> searchQuery, Pageable pageReq) {
190190

191-
TypedQuery<UUID> query = entityManager.createQuery(searchQuery.getIdQuery(), UUID.class);
191+
TypedQuery<String> query = entityManager.createQuery(searchQuery.getIdQuery(), String.class);
192192

193193
for (Entry<String, Object> entry : searchQuery.getParams().entrySet()) {
194194
query.setParameter(entry.getKey(), entry.getValue());

0 commit comments

Comments
 (0)