Hibernate基準Left Outer Join機能制限の両方のテーブル
-
18-09-2019 - |
質問
を行っていますLEFT OUTER JOINていますが、私が適用さ制限の表に示す。があるので、tiの適用のテーブルでも見ることができますか?
こちらは自分のコード:
Criteria criteria = this.crudService
.initializeCriteria(Applicant.class).setFetchMode("products",
FetchMode.JOIN);.
この作品(応募者はapplicantName性):
criteria.add(Restrictions.eq("applicantName", "Markos")
もしこれらの作品はproductName件)
criteria.add(Restrictions.eq("productName", "product1")
基準とします。追加(制限がない。eq("製品です。productName","product1")//製品:プロパティの名前 基準とします。追加(制限がない。eq("製品です。productName","product1")//製品:名DBテーブル
この例外を得ていますがえわかれば、正しくはproductName性が存在しない申請者:
EJB Exception: ; nested exception is: org.hibernate.QueryException: could not resolve property: products.inventedName of: org.myCompany.applicant.entity.Applicant; nested exception is: org.hibernate.QueryException: could not resolve property: products.inventedName of: org.myCompany.applicant.entity.Applicant
私は利用しようとしたエイリアスが生成されるINNER JOIN、LEFT OUTER JOINってきた。
どのように申し込みは制限の両方のテーブル?
更新:
問題であろうと同じです:https://forum.hibernate.org/viewtopic.php?p=2393694
解決
指定しますleft outer joinのcreatealias...
.CreateAlias("products", "p", NHibernate.SqlCommand.JoinType.LeftOuterJoin)
.Add(Restrictions.Eq("p.inventedName", inventedName));
なお、左側の参加を制限する列目的で内。いつものお願いない商品しかできないチェックnullの場合商品です。
他のヒント
更新:
.CreateAlias("products", "p", JoinType.LEFT_OUTER_JOIN)
.Add(Restrictions.Eq("p.inventedName", inventedName));
私は、この私の問題を新規作成基準を使うことがでLEFT_OUTER_JOINました。
所属していません StackOverflow