質問

を行っています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ました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top