2011-12-23 28 views
0

私は3つのテーブルを持っていますが、それらの間のアサーションはありませんが、テーブルのプライマリキーはデータを取得するために他の2つのテーブルのカラムとして使用されます。私は休止状態に慣れていませんが、まだ関連付けを作成することはできませんでしたが、3つのテーブルからデータをクエリし、マップされたオブジェクト型を返す必要があります。私はこのラインを使用してみましたHibernate createSQLQuery

Query q = session.createSQLQuery("select p.projectid, p.projecttitle, p.projectdescription from projects p join accounts a on p.accountid = a. accountid join addresses ad on ad.accountid = a.accountid where ad.zipcode=" + zipcode); 

:私はそれを行うために、SQLクエリを使用しています

List<Projects> projects = (List<Projects>)q.List(); 

がそれらを変換するために、それはうまくいきませんでした。

このクエリによって返されたオブジェクト(Lang.Object)をマップされたProjectsオブジェクトに変換するanyqayはありますか?ご協力いただきありがとうございます。

+1

を行うことができます(http://docs.jboss.org/hibernate/core/3.3/reference/en/html/querysql.html [addEntity]見てきました)?それはおそらくここで助けることができます... – aishwarya

+0

btw、あなたは簡単にこの関連をモデル化し、基準を使用して処理することができます。プロジェクトにはアカウントがあり、アカウントには住所があり、住所には郵便番号が付いています。 – aishwarya

+0

"動作しませんでした" - 例外をスローしましたか?それとも、何も返されなかったのか? – Aaron

答えて

0
List projects = q.List(); 

    for (Iterator iterator = projects.iterator(); iterator.hasNext();){ 

     Object[] row = (Object[]) iterator.next(); 
     Projects project = new Project(); 
     project.setName(row[0].toString()); 

     System.out.println("Project name: " + project.getName());   
    } 

か、また

List projects = q.List(); 

    for (Iterator iterator = projects.iterator(); iterator.hasNext();){ 

     Object[] row = (Object[]) iterator.next(); 
     Projects project = new Project(row[0].toString()); 
     System.out.println("Project name: " + project.getName());   
    } 
関連する問題