JPA Native Query-Objekt auswählen und umwandeln
Ich habe ein ObjektAdmin
was sich erstrecktUser
. Standardmäßig befinden sich beide Objekte in der TabelleUser_
meiner Derby - Datenbank (inkludierte Felder vonAdmin
). Normalerweise würde ich eine auswählenUser
so was:
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();
Aufgrund der Komplexität meiner Abfrage verwende ich jedoch eine systemeigene Abfrage wie die folgende:
Query query = em.createNativeQuery("SELECT USER.* FROM USER_ AS USER WHERE ID = ?");
query.setParameter(1, id);
return (User) query.getSingleResult();
Dies löst jedoch eine Besetzungsausnahme aus. Ich denke das liegt an irgendwelchen Feldern ausAdmin
.
Meine Frage ist, wie ich eine auswählen kannUser
Verwenden einer systemeigenen Abfrage mit dem gleichen Ergebnis wie im ersten Beispiel (einschließlich der gleichen Werte für@LOB
und@ManyToOne
(und so weiter) als die JPQL-Abfrage zurückkehren würde)?