ネイティブクエリを使用して、bigint
のリストを取得しています。私は上記のように、LONGデータ型を使用する場合はbigint postgres datatytpeをJava Longに暗黙的にキャストします。
@Query(value="SELECT bigint_field FROM complex_innerquery", nativeQuery=true)
Collection<Long> getAllBigIntFieldValues();
は、それが
java.math.BigIntegerのがjava.lang.Longの
にキャストすることはできません
は、それはそう、次のエラーがスローされますJPAのようにbigintをデータベースからBigIntegerにデフォルトで変換します。
明らかに、BigIntegerはLongと比較して巨大なデータ型です。格納している間は、私のフィールドは定義されたエンティティのLong型であるため、BigIntegerからLong値への変換中にデータを失うことはありません。BigIntegerデータ型を取り除く方法はありますか?具体的には、getAllBigIntFieldValues
メソッドを呼び出すメソッドで、BigIntegerを明示的にLongValueに変換する必要はありません。
なぜこのようなことが起こるのかについては、[この質問](https://stackoverflow.com/q/27429422/1079354)にいくつかの洞察があります。 – Makoto