List trazendo registro duplicados?

Estou com uma consulta trazendo somente o primeiro registro e este registro sendo repetido, tantas vezes quanto a quantidade de registros retornado pelo sql, o sql está correto, se eu rodar ele no assistente do banco de dados ele retorna os registro corretamente, porem no retorno gerado em json que o postman mostra, ele traz somente o primeiro registro, e este registro, repetido tantas vezes quanto a quantidade de registros retornado.

Meu model está assim:

package com.saojudas.contasapagar.api.model;
import java.math.BigDecimal;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;


@Entity
@Table(name = "itenspedido")
public class Itenspedido {
	@Id
	@NotNull
	private Long codigo_cheque;	
	@NotNull
	@GeneratedValue(strategy = GenerationType.IDENTITY)	
	private Long seq;
	private BigDecimal vlrunit;
	private BigDecimal proporcao;
	private BigDecimal vlritem;
	private BigDecimal qtd;
	@NotNull
	@ManyToOne
	@JoinColumn(name = "codigo")
	private Produtos produtos;
	

	public Long getSeq() {
		return seq;
	}

	public void setSeq(Long seq) {
		this.seq = seq;
	}

	public BigDecimal getVlrunit() {
		return vlrunit;
	}

	public void setVlrunit(BigDecimal vlrunit) {
		this.vlrunit = vlrunit;
	}

	public BigDecimal getProporcao() {
		return proporcao;
	}

	public void setProporcao(BigDecimal proporcao) {
		this.proporcao = proporcao;
	}

	public BigDecimal getVlritem() {
		return vlritem;
	}

	public void setVlritem(BigDecimal vlritem) {
		this.vlritem = vlritem;
	}

	public BigDecimal getQtd() {
		return qtd;
	}

	public void setQtd(BigDecimal qtd) {
		this.qtd = qtd;
	}

	public Produtos getProdutos() {
		return produtos;
	}

	public void setProdutos(Produtos produtos) {
		this.produtos = produtos;
	}

	public Long getCodigo_cheque() {
		return codigo_cheque;
	}

	public void setCodigo_cheque(Long codigo_cheque) {
		this.codigo_cheque = codigo_cheque;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((codigo_cheque == null) ? 0 : codigo_cheque.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Itenspedido other = (Itenspedido) obj;
		if (codigo_cheque == null) {
			if (other.codigo_cheque != null)
				return false;
		} else if (!codigo_cheque.equals(other.codigo_cheque))
			return false;
		return true;
	}
 	
}
 o repository está assim 
package com.saojudas.contasapagar.api.repository.itenspedido;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.saojudas.contasapagar.api.model.Itenspedido;
import com.saojudas.contasapagar.api.repository.filter.ItenspedidoFilter;


public interface ItenspedidoRepositoryQuery {
	
	
	
	public Page<Itenspedido> filtrar(ItenspedidoFilter itenspedidoFilter, Pageable pageable);
	
	public List<Itenspedido> porCheque(ItenspedidoFilter itenspedidoFilter);
}
o repositoryimpl
package com.saojudas.contasapagar.api.repository.itenspedido;


import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;

import com.saojudas.contasapagar.api.model.Itenspedido;
import com.saojudas.contasapagar.api.model.Itenspedido_;
import com.saojudas.contasapagar.api.model.Produtos_;
import com.saojudas.contasapagar.api.repository.filter.ItenspedidoFilter;



public class ItenspedidoRepositoryImpl implements ItenspedidoRepositoryQuery {
	@PersistenceContext
	private EntityManager manager;

	@Override
	public List<Itenspedido> porCheque(ItenspedidoFilter itenspedidoFilter){
		CriteriaBuilder builder = manager.getCriteriaBuilder();
		CriteriaQuery<Itenspedido> criteria = builder.createQuery(Itenspedido.class);
		Root<Itenspedido> root = criteria.from(Itenspedido.class);
		Predicate[] predicates = criarRestricoes(itenspedidoFilter, builder, root);
		criteria.where(predicates);		
		
		TypedQuery<Itenspedido> query = manager.createQuery(criteria);
		
		return query.getResultList();
	}
	
	@Override
	public Page<Itenspedido> filtrar(ItenspedidoFilter itenspedidoFilter, Pageable pageable) {
		CriteriaBuilder builder = manager.getCriteriaBuilder();
		CriteriaQuery<Itenspedido> criteria = builder.createQuery(Itenspedido.class);
		Root<Itenspedido> root = criteria.from(Itenspedido.class);
						
		/*Predicate[] predicates = criarRestricoes(itenspedidoFilter, builder, root);
		criteria.where(predicates);*/
		Predicate[] predicates = criarRestricoes(itenspedidoFilter, builder, root);
		criteria.where(predicates);
		
		
		TypedQuery<Itenspedido> query = manager.createQuery(criteria);
		adicionarRestricoesDePaginacao(query, pageable);
		
		return new PageImpl<>(query.getResultList(), pageable, total(itenspedidoFilter));
	}
	
	private Predicate[] criarRestricoes(ItenspedidoFilter itenspedidoFilter, CriteriaBuilder builder,
			Root<Itenspedido> root) {
		List<Predicate> predicates = new ArrayList<>();
		predicates.add(builder.equal(root.get(Itenspedido_.codigo_cheque), itenspedidoFilter.getCodigo_cheque()));
		return predicates.toArray(new Predicate[predicates.size()]);
	}

	private void adicionarRestricoesDePaginacao(TypedQuery<?> query, Pageable pageable) {
		int paginaAtual = pageable.getPageNumber();
		int totalRegistrosPorPagina = pageable.getPageSize();
		int primeiroRegistroDaPagina = paginaAtual * totalRegistrosPorPagina;
		
		query.setFirstResult(primeiroRegistroDaPagina);
		query.setMaxResults(totalRegistrosPorPagina);
	}
	
	private Long total(ItenspedidoFilter itenspedidoFilter) {
		CriteriaBuilder builder = manager.getCriteriaBuilder();
		CriteriaQuery<Long> criteria = builder.createQuery(Long.class);
		Root<Itenspedido> root = criteria.from(Itenspedido.class);
		
		Predicate[] predicates = criarRestricoes(itenspedidoFilter, builder, root);
		criteria.where(predicates);
		
		criteria.select(builder.count(root));
		return manager.createQuery(criteria).getSingleResult();
	}
	
	public List<Itenspedido> porCheque(Long codigo_cheque) {
		CriteriaBuilder criteriaBuilder = manager.getCriteriaBuilder();
		
		CriteriaQuery<Itenspedido> criteriaQuery = criteriaBuilder.
				createQuery(Itenspedido.class);
		
		Root<Itenspedido> root = criteriaQuery.from(Itenspedido.class);
		
		criteriaQuery.select(criteriaBuilder.construct(Itenspedido.class, 
	
				root.get(Itenspedido_.seq),
				root.get(Itenspedido_.codigo_cheque),
				root.get(Itenspedido_.produtos).get(Produtos_.nome),
				root.get(Itenspedido_.proporcao),
				root.get(Itenspedido_.qtd),
				root.get(Itenspedido_.vlritem),						
				root.get(Itenspedido_.vlrunit)
				));
		
		criteriaQuery.where(
				criteriaBuilder.equal(root.get(Itenspedido_.codigo_cheque), codigo_cheque));
				
			
		TypedQuery<Itenspedido> typedQuery = manager
				.createQuery(criteriaQuery);
		
		return typedQuery.getResultList();
	}

}
o resource assim
package com.saojudas.contasapagar.api.resource;



import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.saojudas.contasapagar.api.model.Itenspedido;
import com.saojudas.contasapagar.api.repository.ItenspedidoRepository;
import com.saojudas.contasapagar.api.repository.filter.ItenspedidoFilter;



@RestController
@RequestMapping("/itenspedido")
public class ItenspedidoResource {

	@Autowired
	private ItenspedidoRepository itenspedidoRepository;
	
	
	
	@GetMapping
	@PreAuthorize("hasAuthority('ROLE_PESQUISAR_CHEQUE') and #oauth2.hasScope('read')")
	public Page<Itenspedido> pesquisar(ItenspedidoFilter itenspedidoFilter, Pageable pageable) {
		return itenspedidoRepository.filtrar(itenspedidoFilter, pageable);
	}

	@GetMapping("/{codigo_cheque}")
	@PreAuthorize("hasAuthority('ROLE_PESQUISAR_CHEQUE') and #oauth2.hasScope('read')")
	public List<Itenspedido> porCheque(ItenspedidoFilter itenspedidoFilter) {
		return itenspedidoRepository.porCheque(itenspedidoFilter);
	}
	
}

o que estou fazendo de errado para isto acontecer ?