私は、アプリケーションでデータを取得するためにHibernateを使用するJavaアプリケーションを作成しています。ユーザが入力したsqlコマンド文字列を受け取り、Hibernateを通してそれを実行して、結果テーブルがどのように見えるかわからないので、カラム名を知らないのですが、カラム名がデータフィールドに関係するテーブルにユーザのクエリ結果を表示する必要があります。どのようにHibernateでそれを達成するのですか?スレッドの例外「AWT-EventQueueの-0」とjava.lang.ClassCastException:sakila.entity.Actorは、Javaにキャストすることはできませんそれは私に次のエラーメッセージを与えたJavaでHibernateのクエリ結果からカラム名を取得するには?
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());
:私は、次のコードを試してみました。 util.Map
これは最初のforループを指しています。私はHibernateを初めて使ったので、それが実行可能かどうか、上記のコードを修正する方法はわかりません。誰かが私のケースで動作するサンプルコードを私に見せてもらえますか?
編集: MarcelStörが以下に述べるように、私は両方の状況が起こることを許可し、ユーザーのデータ照会機能を制限することができないようにする必要があります。