Dies ist ein Problem mit Spring Data JPA. Wenn in DB der Datentyp als BigInteger definiert ist und wir in der JPA-Abfrage versuchen, Long abzurufen, wird kein Fehler ausgegeben, aber der Wert wird als BigInteger im Long-Datentyp festgelegt.
Lösungen:
-
Verwenden Sie BigInteger als Rückgabetyp
@Query(value = "select distinct(oid) from unit", nativeQuery = true) List<BigInteger> testMethod();
Legen Sie dann die Variable wie folgt fest.
Long variable = bigIntegerValue.longValue();
-
Verwenden Sie String als Rückgabetyp eingeben und in Long
umwandeln@Query(value = "select distinct(oid) from unit", nativeQuery = true) List<String> testMethod();
Legen Sie dann den Wert als
festLong variable = Long.valueOf(stringValue);
-
DB-Spaltentyp ändern zu Ganzzahl/Zahl.
-
Holen Sie sich den Wert von Entität Objekt.
Long variable = dpConfigData.getOid();
wobei
dpConfigData
ist Objekt von Entity(DpConfigData.class)