Skip to content

Commit

Permalink
Added pagination support for generated REST endpoints
Browse files Browse the repository at this point in the history
  • Loading branch information
gastaldi committed Sep 26, 2013
1 parent d1d9190 commit f8d6012
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 10 deletions.
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
Iterator<${simpleParameterizedType}> ${jpaIterator} = entity.${fieldGetter}.iterator();
for (;${jpaIterator}.hasNext();)
while (${jpaIterator}.hasNext())
{
boolean found = false;
${simpleParameterizedType} ${jpaVar} = ${jpaIterator}.next();
Iterator<${nestedDTOType}> ${dtoIterator} = this.${fieldGetter}.iterator();
for (;${dtoIterator}.hasNext();)
while (${dtoIterator}.hasNext())
{
${nestedDTOType} ${dtoVar} = ${dtoIterator}.next();
if(${dtoVar}.${reverseIdGetter}.equals(${jpaVar}.${reverseIdGetter}))
Expand All @@ -19,12 +19,12 @@
}
}
Iterator<${nestedDTOType}> ${dtoIterator} = this.${fieldGetter}.iterator();
for (;${dtoIterator}.hasNext();)
while (${dtoIterator}.hasNext())
{
boolean found = false;
${nestedDTOType} ${dtoVar} = ${dtoIterator}.next();
${jpaIterator} = entity.${fieldGetter}.iterator();
for (;${jpaIterator}.hasNext();)
while (${jpaIterator}.hasNext())
{
${simpleParameterizedType} ${jpaVar} = ${jpaIterator}.next();
if(${dtoVar}.${reverseIdGetter}.equals(${jpaVar}.${reverseIdGetter}))
Expand All @@ -36,7 +36,7 @@
if(found == false)
{
Iterator<${simpleParameterizedType}> resultIter = em.createQuery("SELECT DISTINCT ${jpqlVar} FROM ${simpleParameterizedType} ${jpqlVar}", ${simpleParameterizedType}.class).getResultList().iterator();
for(;resultIter.hasNext();)
while (resultIter.hasNext())
{
${simpleParameterizedType} result = resultIter.next();
if(result.${reverseIdGetter}.equals(${dtoVar}.${reverseIdGetter}))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,18 @@ public class ${entityTable}Endpoint

@GET
@Produces("${contentType}")
public List<${entity.getName()}> listAll()
public List<${entity.getName()}> listAll(@QueryParam("start") Integer startPosition, @QueryParam("max") Integer maxResult)
{
final List<${entity.getName()}> results = em.createQuery("${selectExpression} ${orderClause}", ${entity.getName()}.class).getResultList();
TypedQuery<Customer> findAllQuery = em.createQuery("${selectExpression} ${orderClause}", ${entity.getName()}.class);
if (startPosition != null)
{
findAllQuery.setFirstResult(startPosition);
}
if (maxResult != null)
{
findAllQuery.setMaxResults(maxResult);
}
final List<${entity.getName()}> results = findAllQuery.getResultList();
return results;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,18 @@ public class ${entityTable}Endpoint

@GET
@Produces("${contentType}")
public List<${dto.getName()}> listAll()
public List<${entity.getName()}> listAll(@QueryParam("start") Integer startPosition, @QueryParam("max") Integer maxResult)
{
final List<${entity.getName()}> searchResults = em.createQuery("${selectExpression} ${orderClause}", ${entity.getName()}.class).getResultList();
TypedQuery<Customer> findAllQuery = em.createQuery("${selectExpression} ${orderClause}", ${entity.getName()}.class);
if (startPosition != null)
{
findAllQuery.setFirstResult(startPosition);
}
if (maxResult != null)
{
findAllQuery.setMaxResults(maxResult);
}
final List<${entity.getName()}> searchResults = findAllQuery.getResultList();
final List<${dto.getName()}> results = new ArrayList<${dto.getName()}>();
for(${entity.getName()} searchResult: searchResults) {
${dto.getName()} dto = new ${dto.getName()}(searchResult);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Iterator<${elementType}> ${collectionIterator} = entity.${fieldGetter}.iterator();
for (;${collectionIterator}.hasNext();)
while (${collectionIterator}.hasNext())
{
${elementType} element = ${collectionIterator}.next();
this.${fieldName}.add(new ${nestedDTOType}(element));
Expand Down

0 comments on commit f8d6012

Please sign in to comment.