원시 쿼리를 사용하여 bigint
목록을 얻은 다음 반복 할 계획입니다. 나는 위와 같이 긴 데이터 유형을 사용하는 경우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