Sto scrivendo un'app Java che utilizza Hibernate per ottenere i dati, nella mia app ho un'area di testo di input che accetta una stringa di comando sql digitata dall'utente e l'esecuzione tramite Hibernate per ottenere qualsiasi dato l'utente interroghi, quindi non so in anticipo quale potrebbe essere la tabella dei risultati e quindi non conosco i nomi delle colonne, ma ho bisogno di visualizzare i risultati della query utente in una tabella con i nomi delle colonne relativi ai campi dati, come ottenerli in Hibernate? Ho provato il seguente codice:Come ottenere i nomi delle colonne dal risultato della query Hibernate in Java?
Session session=HibernateUtil.getSession();
session.beginTransaction();
Query q=session.createQuery(hql);
AliasToEntityMapResultTransformer INSTANCE=new AliasToEntityMapResultTransformer();
q.setResultTransformer(INSTANCE);
List<Map<String,Object>> aliasToValueMapList=q.list();
for (Map<String,Object> map : aliasToValueMapList)
for (Map.Entry<String,Object> entry : map.entrySet()) System.out.println(entry.getKey()+" - "+entry.getValue());
Mi ha dato il seguente messaggio di errore: Exception in thread java.lang.ClassCastException "AWT-EventQueue-0": sakila.entity.Actor non può essere lanciato a Java. util.Map
Punta al primo ciclo for, poiché sono nuovo di Hibernate, non so se è fattibile in esso, come correggere il codice precedente? Qualcuno potrebbe mostrarmi un codice di esempio che funzioni nel mio caso?
Modifica: Come Marcel Stör menzionato di seguito, devo essere in grado di consentire a entrambe le situazioni di accadere e non limitare la capacità degli utenti di interrogare qualsiasi dato, qual è il modo migliore per farlo?