2
respostas

[Bug] org.springframework.dao.InvalidDataAccessResourceUsageException: JDBC exception executing SQL

Estou aplicando os conhecimentos de paginação do curso em outra aplicação, e quando coloco Pageable como parâmetro no Controller aparece o erro abaixo:

ERROR 47884 --- [nio-5000-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.dao.InvalidDataAccessResourceUsageException: JDBC exception executing SQL [select u1_0.matricula,u1_0.ativo,u1_0.funcao,u1_0.login_ldap,u1_0.nome,u1_0.senha from public.usuario_view u1_0 offset ? rows fetch first ? rows only] [ERROR: syntax error at or near "$2"
  Position: 140] [n/a]; SQL [n/a]] with root cause

Sem o parâmetro Pageable funciona normal.

Usuario

@Entity
@Table(schema = "public", name="usuario_view")
@Getter
public class Usuario implements Serializable {	
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer matricula;
    private String nome;
    @Column(name="login_ldap")
    private String loginLdap;
    private String funcao;
    private boolean ativo;
    private String senha;
}

Repository

@Repository
public interface UsuarioRepository extends JpaRepository<Usuario, Integer> {

}

Controller

@GetMapping
    public ResponseEntity<?> listarUsuarios2(Pageable paginacao) {
        return ResponseEntity.status(HttpStatus.OK).body(usuarioRepository.findAll(paginacao));
    }
2 respostas

Oi!

Você está utilizando o Postgres como banco de dados. Coloque essa linha no application.properties, pois pode ser que o Hibernate esteja utilizando o dialeto incorreto:

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

Oi. Obrigado pela resposta. Adicionei a linha, mas continua com o mesmo erro.