- - PR -
Hibernate 結合マッピングが存在しないクラス同士のJoin方法
1|2|3|4
次のページへ»
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-02-16 13:26
お世話になります。
現在O/RマッピングツールのHibernateを利用したアプリケーションの開発を行っています。 連載:Hibernateで理解するO/Rマッピング(5)のPage2に該当記事を見つけましたが、 HQLが記述されているだけで具体的なコーディングがありません。 どのようにコーディングすれば記事にあるようなListを取得できるのでしょうか? 検索はしたのですが見つけることができませんでした。 環境 JDK:1.4.2_07 DB:Oracle8i(8.1.7) Tomcat:5.0.28 Hibernate:2.1.8 SpringFramework:1.1.4 |
|
投稿日時: 2005-02-18 16:13
こんにちは。
Hibernate 結合マッピングが存在しないクラス同士のJoin方法 の題名と違ってしまいますが、 結合マッピングを指定する方法ではだめなのでしょうか? |
|
投稿日時: 2005-02-18 18:28
abby様、ありがとうございます。
テーブルに制約の定義をできないので、結合マッピングができないと思いました。 制約がなくても結合マッピングが可能なのでしょうか? サンプルを見ながら作業をしているのでまだまだ勉強不足です。 よろしくお願いします。 |
|
投稿日時: 2005-02-19 21:18
こんにちは。
オブジェクトAとオブジェクトBを結合したい場合は、 from A,B where A.a = B.b and A.c = B.d のようにSQLと同じ記述ができます。 この場合、Listの要素はObject[]になります。 |
|
投稿日時: 2005-02-20 00:57
すえぞう様、ありがとうございます。
このHQLで取得するコーディングは具体的にどのようにするのでしょうか? SessionFactoryからSessionを取得してfindメソッドで取得すればよいのでしょうか? やりたいことはLeft Joinです。 以上、よろしくお願いします。 |
|
投稿日時: 2005-02-20 10:25
Queryクラスを使用します。
left join をするにはDBがオラクルの場合、 Query q = session.createQuery("from A,B where A.a = B.b (+)"); List list = q.list(); この場合のListの要素はObject[]で、 Object[0]はクラスA Object[1]はクラスB になります。 |
|
投稿日時: 2005-02-21 11:48
すえぞう様、ありがとうございます。
Queryクラスを使用して取得することができました。 もう1つ質問なのですが、DBによってJOINの記述方法が違うのでしょうか? 連載:Hibernateで理解するO/Rマッピング(5)のPage2 ( http://www.atmarkit.co.jp/fjava/rensai3/ormap05/ormap05_2.html ) には次のようになっていました。(MySQLの場合) From package.ClassA as clA right outer join package.ClassB as clB Where clA.objID = clB.objID よろしくお願いします。 |
|
投稿日時: 2005-02-22 10:16
yellowfd3sさん、こんにちは。
テーブルに制約の定義をできないというのは、どういうことでしょうか?? 私は自分で勉強しているので、正しい方法はよくわかりませんが、 http://www.atmarkit.co.jp/fjava/rensai3/ormap05/ormap05_1.html 私は↑を参考にマッピングをすることができました。 私はなるべく、HQLは自分で書かないというのを趣旨でやっているので。 |
1|2|3|4
次のページへ»