Đây là sự cố với dữ liệu Spring JPA. Nếu trong DB, kiểu dữ liệu được xác định là BigInteger và trong truy vấn JPA, chúng tôi cố gắng tìm nạp là Long thì nó sẽ không đưa ra bất kỳ lỗi nào, nhưng nó đặt giá trị là BigInteger trong kiểu dữ liệu Dài.
Giải pháp:
-
Sử dụng BigInteger như loại trả lại
@Query(value = "select distinct(oid) from unit", nativeQuery = true) List<BigInteger> testMethod();
sau đó đặt biến như bên dưới.
Long variable = bigIntegerValue.longValue();
-
Sử dụng Chuỗi dưới dạng trả về Loại và chuyển đổi thành Dài
@Query(value = "select distinct(oid) from unit", nativeQuery = true) List<String> testMethod();
sau đó đặt giá trị là
Long variable = Long.valueOf(stringValue);
-
Thay đổi loại cột DB thành Số nguyên / Số.
-
Nhận Giá trị từ Thực thể Đối tượng.
Long variable = dpConfigData.getOid();
ở đâu
dpConfigData
là đối tượng của Thực thể (DpConfigData.class)