Que tal
long value = ((Number)query.uniqueResult()).longValue();
return Long.valueOf(value);
Isso funcionaria para todas as subclasses de Number como Long, Double, Biginteger ou BigDecimal.
long value = ((Number)query.uniqueResult()).longValue();
return Long.valueOf(value);