sql >> Base de Datos >  >> RDS >> PostgreSQL

Error en Spring Data JPA:Spring Data devuelve List en lugar de List

Este es un problema con Spring data JPA. Si en la base de datos el tipo de datos se define como BigInteger y en la consulta de JPA intentamos buscar como Long, entonces no dará ningún error, pero establecerá el valor como BigInteger en el tipo de datos Long.

Soluciones:

  1. Utilice BigInteger como tipo de retorno

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

    luego configure la variable como se muestra a continuación.
    Long variable = bigIntegerValue.longValue();

  2. Usar Cadena como Tipo de retorno y convertir a Largo

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

    luego establezca el valor como

    Long variable = Long.valueOf(stringValue);

  3. Cambiar el tipo de columna de la base de datos a Entero/Número.

  4. Obtener el valor de Entidad Objeto.

    Long variable = dpConfigData.getOid();

    donde dpConfigData es objeto de Entidad (DpConfigData.class)