2017-05-08 5 views
0

ここに私がやろうとしていることがあります: 1. Hibernateオブジェクトにデータを移入するためにHQLを送信します。 2.ネイティブSQLを送信して、「User」テーブルの非常に大きなデータ列から小さなデータセットを取得します。 3.マッピングされたHibernateオブジェクトを手順2の列結果と組み合わせてください。Hibernate ResultTransformerの結果をオリジナルのHibernateオブジェクトと結合する

ResultTransformerを使用して2からHibernateエンティティへの結果セットをマッピングすることができます。 ResultTransformerマッピングの結果を元のUserエンティティに挿入する方法はありますか?

ここにいくつかの例を示します。1. HQL - From User。ユーザーにはHibernateマッピングファイルを使用し、バイトコード拡張を使用して、 "xmlStringColumn lazy = true"を設定します。文字列hql = "FROM User"; ユーザーリスト= session.createQuery(hql).list(); 2.私たちは、クエリ
一覧resultXML = s.createSQLQuery( "特定のデータを取得するためのXMLのSQL") .setResultTransformer(Transformers.aliasToBean(User.class)) の.list()を送ります。

ユーザdto =(ユーザ)resultWithAliasedBean.get(0); //ユーザーdtoをSQLから元のものに結合するコードが必要です

答えて

0

ResultTransformerは、1対多のリレーションシップオブジェクトを1つのオブジェクトにバンドルします。 例えば、

クラスA {

セットB =新しいHashSetの()。だから、

}

あなたはクラスAからクエリを開始し、それが1つのオブジェクトにA.のmultipeオブジェクト

ResultTransformerバンドルデータを作成するに終わるだろうBに参加する追加した場合。

私たちがあなたが習得していることを理解できるように、ポストコードを記入してください!

+0

ここにいくつかの例があります: – shaselai

+0

ここにいくつかの例があります:1. HQL - From User。ユーザーにはHibernateマッピングファイルを使用し、バイトコード拡張を使用して、 "xmlStringColumn lazy = true"を設定します。文字列hql = "FROM User"; リストユーザー= session.createQuery(hql).list(); 2.クエリを送信します。 resultXML = s.createSQLQuery( "特定のデータを取得するXML SQL") .setResultTransformer(Transformers.aliasToBean(User.class)) .list(); ユーザdto =(ユーザ)resultWithAliasedBean.get(0); // SQLから元のユーザーdtoを結合するコードが必要です – shaselai

+0

選択リストの名前とユーザーのプロパティ名が同じであることを確認してください –

関連する問題