Ist es möglich, diese Abfrage als TypedQuery zu schreiben und die beiden Long Run in ein Objekt mit zwei öffentlichen Langen Feldern innerhalb lassen.TypedQuery anstelle der normale Abfrage in JPA
Query q = em.createQuery(
"SELECT c.id, COUNT(t.id) " +
"FROM PubText t " +
"JOIN t.comm c " +
"WHERE c.element = ?1 " +
"GROUP BY c.id");
q.setParameter(1, e);
List<?> rl = q.getResultList();
Iterator<?> it = rl.iterator();
HashMap<Long, Long> res = new HashMap<Long, Long>();
while (it.hasNext()) {
Object[] n = (Object[]) it.next();
res.put((Long)n[0], (Long)n[1]);
}
return res;
hi @kostja Ich erhalte einen Fehler (kann TypedQuery für Abfrage mit mehr als einer Rückkehr nicht erstellen). Mein SQL sieht so aus: 'SELECT NEW com.company.ui.EntityIDKey (c.companyId, c.name) FROM Firma c WHERE c.companyId ist nicht null und c.name ist nicht null und länge (trim (c.name))> 0 order by c.name asc'. Ich verwende einen TypedQuery wie folgt:. 'Liste Unternehmen = getEntityManager() Create (SQL, EntityIDKey.class) .getResultList();' –
kann dies der Fall sein, wenn Ihr EntityIDKey keine Einheit ist. Der Anbieter kann solche Anfragen nicht unterstützen. Haben Sie versucht, eine normale Abfrage zu verwenden? – kostja
das ist wahr, "EntityIDKey" ist keine Entität. Ich verwende den Hibernate-Provider und vermutete irgendwie, dass es funktioniert. Eine reguläre Abfrage, die eine Sammlung von "Firma" erstellt, funktioniert gut. –