sql >> Database >  >> RDS >> PostgreSQL

Bug in Spring Data JPA:Spring Data retourneert List in plaats van List

Dit is een probleem met Spring-gegevens JPA. Als in DB het datatype is gedefinieerd als BigInteger en in JPA-query proberen we op te halen als Long, dan zal het geen fout geven, maar wordt de waarde ingesteld als BigInteger in Long datatype.

Oplossingen:

  1. Gebruik BigInteger als retourtype

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

    stel vervolgens de variabele in zoals hieronder.
    Long variable = bigIntegerValue.longValue();

  2. Gebruik String als return Typ en converteer naar Long

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

    stel dan de waarde in als

    Long variable = Long.valueOf(stringValue);

  3. Wijzig DB-kolomtype naar geheel getal/getal.

  4. Haal de waarde op van Entiteit Voorwerp.

    Long variable = dpConfigData.getOid();

    waar dpConfigData is object van Entiteit(DpConfigData.class)



  1. SQL-query om meerdere tabellen te tellen ()

  2. Slow select aparte query op postgre

  3. Hoe Hangfire te configureren met Mysql-opslag

  4. timestampdiff-equivalent in JPQL (zonder criteria te gebruiken)