Jest to problem z Spring data JPA. Jeśli w DB typ danych jest zdefiniowany jako BigInteger, a w zapytaniu JPA próbujemy pobrać jako Long, to nie da żadnego błędu, ale ustawi wartość jako BigInteger w typie danych Long.
Rozwiązania:
-
Użyj BigInteger jako typ zwrotu
@Query(value = "select distinct(oid) from unit", nativeQuery = true) List<BigInteger> testMethod();
następnie ustaw zmienną jak poniżej.
Long variable = bigIntegerValue.longValue();
-
Użyj ciągu jako return Wpisz i przekonwertuj na Długie
@Query(value = "select distinct(oid) from unit", nativeQuery = true) List<String> testMethod();
następnie ustaw wartość jako
Long variable = Long.valueOf(stringValue);
-
Zmień typ kolumny DB na Integer/Number.
-
Uzyskaj wartość od podmiotu Obiekt.
Long variable = dpConfigData.getOid();
gdzie
dpConfigData
jest obiektem Entity(DpConfigData.class)