What does EntityManager.getSingleResult()
return for a COUNT query?
So.. what is the precise runtime type of foo?
Object foo = em.createQuer
Native queries can return different objects for a COUNT based on the database driver; however, all those objects extend java.lang.Number, which implements the longValue() method.
COUNT(t) specifically returns java.lang.Long. When its appears on its own in this context it is returned as-is.
(In other contexts the Long generated by COUNT may be wrapped, but not today.)