Ambos
BigDecimal
e Double
estender Number
, então você pode fazer:Number singleResult = ((Number) entityManager.createNativeQuery(sqlString).getSingleResult());
double resultAsDouble = singleResult.doubleValue();
BigDecimal resultAsBigDecimal = new BigDecimal(singleResult.toString());
Use
resultAsDouble
se você deseja o tipo primitivo, mas não se preocupa em preservar a precisão exata, use resultAsBigDecimal
por outro lado.