Piszę aplikację Java, która używa Hibernate do pobierania danych, w mojej aplikacji mam wejściowy obszar tekstowy, który pobiera wpisywany przez użytkownika ciąg znaków polecenia sql i uruchamia go przez Hibernate, aby uzyskać dowolne dane, które użytkownik prosi, więc nie wiem wcześniej, jak tabela wyników może wyglądać i dlatego nie zna nazw kolumn, ale muszę wyświetlić wynik zapytania użytkownika w tabeli z nazwami kolumn odnoszą się do pól danych, w jaki sposób osiągnąć to w Hibernacja? Próbowałem następujący kod:Jak uzyskać nazwy kolumn z wyniku zapytania Hibernate w Javie?
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());
Dało mi się następujący komunikat o błędzie: Wyjątek w wątku „AWT-EventQueue-0” java.lang.ClassCastException: sakila.entity.Actor nie mogą być oddane do java. util.Map
Wskazuje na pierwszą pętlę for, ponieważ jestem nowy w Hibernate, nie wiem, czy jest to wykonalne, jak naprawić powyższy kod? Czy ktoś może mi pokazać przykładowy kod, który działa w moim przypadku?
Edycja: Jak wspomniano poniżej Marcel Stör, muszę mieć możliwość wystąpienia obu sytuacji i nie ograniczać możliwości wyszukiwania danych przez użytkowników, jaki jest najlepszy sposób na zrobienie tego?