い方は、左の参加テーブルを一方向における分子-ハイバネー?
-
24-09-2019 - |
質問
私がピギー-バックオフ 参加テーブルを一方向性多対一ですか?.
場合は二つのクラス:
class A {
@Id
public Long id;
}
class B {
@Id
public Long id;
@ManyToOne
@JoinColumn(name = "parent_id", referencedColumnName = "id")
public A parent;
}
B->Aな関係です。私は理解していたビジネス地区にある集Bsをしたくないこと。
私の実際の問題ではありまHQLや基準を作成するための手段のSQLクエリー:
select * from A left join B on (b.parent_id = a.id)
このすべてを取得、記録との直積の各億記録を参照するとともに記録のないBを参照します。
ご利用の場合:
from A a, B b where b.a = a
その内の参加を受けないので記録のないa Bを参照します。
私は見つかりませんで良いということなく二つのクエリでも以下さい。
感謝。
解決
私はあなたが投稿して、私はこれが働くかもしれないと思う何をして例を作りました。
HQLでselect a,b from B as b left outer join b.parent as a
ます。
私もやっていることの「基準」方法を見つける必要があります。
他のヒント
いを指定する属性を取得す.
(10)取得(オプション)の間でお選び外の参加を取得、取得による列を選択します。
ょう: 第6章ョンマッピング, 巻下: 6.2.マッピングを集
編集
読み込みますご質問、コメントするために行う原SQLクエリー?こちらを参照するものである可能性も利
する場合がございますのでおうとすることを通じてHQL:
11章は、いまでスクロールして、 11.3.協会に加入.
IQuery q = session.CreateQuery(@"from A as ClassA left join B as ClassB");
もしかしたClassBのニーズに参加できることにクラスa.さらにreasdingsはます。
この他にもproove有用であることをお 名問合せ:
<query name="PeopleByName">
from Person p
where p.Name like :name
</query>
は、このクエリ内からコードのように:
using (var session = sessionFactory.OpenSession())
using (var tx = session.BeginTransaction()) {
session.GetNamedQuery("PeopleByName")
.SetParameter("name", "ayende")
.List();
tx.Commit();
}
ご覧ください参照されるリンクによるAyende方を説明します。
所属していません StackOverflow