PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Bug no Spring Data JPA:Spring Data retorna List em vez de List


Este é um problema com os dados Spring JPA. Se no DB o tipo de dados estiver definido como BigInteger e na consulta JPA tentarmos buscar como Long, então não dará nenhum erro, mas definirá o valor como BigInteger no tipo de dados Long.

Soluções:

  1. Use BigInteger como tipo de retorno

    @Query(value = "select distinct(oid) from unit", nativeQuery = true) List<BigInteger> testMethod();

    em seguida, defina a variável como abaixo.
    Long variable = bigIntegerValue.longValue();

  2. Use cadeia como return Digite e converta para Long

    @Query(value = "select distinct(oid) from unit", nativeQuery = true) List<String> testMethod();

    em seguida, defina o valor como

    Long variable = Long.valueOf(stringValue);

  3. Alterar o tipo de coluna do banco de dados para Inteiro/Número.

  4. Obtenha o valor da Entidade Objeto.

    Long variable = dpConfigData.getOid();

    onde dpConfigData é objeto de Entity(DpConfigData.class)