JPA Native Query selecciona y lanza objeto

Tengo un objetoAdmin que se extiendeUser. Por defecto ambos objetos están en la tabla.User_ de mi base de datos Derby (campos incluidos deAdmin). Normalmente seleccionaría unUser Me gusta esto:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<User> query = cb.createQuery(User.class);
Root user= query.from(User.class);
Predicate predicateId = cb.equal(category.get("id"), id);
query.select(user).where(predicateId);
return em.createQuery(query).getSingleResult();

Sin embargo, debido a la complejidad de mi consulta, estoy usando una consulta nativa como esta:

Query query = em.createNativeQuery("SELECT USER.* FROM USER_ AS USER WHERE ID = ?");
query.setParameter(1, id);
return (User) query.getSingleResult();

Aunque esto arroja una excepción de reparto. Me imagino que esto se debe a cualquier campo deAdmin.

Mi pregunta es, ¿cómo puedo seleccionar unUser utilizando una consulta nativa con el mismo resultado que el primer ejemplo (incluidos los mismos valores para@LOB y@ManyToOne (etcétera) como la consulta de JPQL volvería)?

Respuestas a la pregunta(4)

Su respuesta a la pregunta