Boa tarde, galera. Estou com um problema, preciso pesquisar um produto pelo codigo no converter, pórem a pesquisa não esta funcionando, no controller funciona correctamente. Peço ajuda
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;
import org.springframework.beans.factory.annotation.Autowired;
import mz.co.ubi.model.Produto;
import mz.co.ubi.repository.ProdutoRepository;
@FacesConverter(forClass = Produto.class, value="produtoConverter")
public class ProdutoConverter implements Converter {
@Autowired
private ProdutoRepository produtoRepository;
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
Produto retorno = new Produto();
if (value != null && value.trim().length() > 0) {
try {
System.out.println("Valor do value "+value);
return retorno = produtoRepository.listarPorCodigo(new Long(value));
} catch (NumberFormatException e) {
throw new ConverterException(
new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error", "Not a valid theme."));
}
} else {
return null;
}
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value != null) {
Long codigo = ((Produto) value).getCodigo();
String retorno = (codigo == null ? null : codigo.toString());
return retorno;
}
return "";
}
}
Repositorio Spring Boot
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import mz.co.ubi.model.Produto;
public interface ProdutoRepository extends JpaRepository<Produto, Long> {
@Query("select p from Produto p inner join fetch p.isencao inner join fetch p.categoria c Where p.estado is true AND p.chaveEmpresa = :chave order by c.nome asc")
List<Produto> listarActivos(@Param("chave") Long chave);
@Query("select p from Produto p inner join fetch p.isencao inner join fetch p.categoria c Where p.estado is true AND p.codigo= :codigo")
Produto listarPorCodigo(@Param("codigo") Long codigo);
@Query("select p from Produto p inner join fetch p.isencao inner join fetch p.categoria c Where p.estado is true "
+ "AND p.chaveEmpresa = :chave AND p.descricao LIKE %:descricao%")
List<Produto> listarActivos(Long chave, String descricao);
Produto findByDescricao(String value);
}