sql >> データベース >  >> RDS >> Oracle

同じテーブルを2回結合するためのHibernateCreateCriteria-2つの差分エラーで2つのアプローチを試しました

    org.hibernate.QueryException: duplicate association pathの問題に関する古いHibernateバグHHH-879があります 2005年にオープンし、まだオープンしています...

    その他の問題は解決策なしでクローズされますHHH-7882

    したがって、オプション1)はかなり適切ではありません。

    しかし、上記のバグのコメントでは、有用な回避策 existsを使用して言及されています

    したがって、sqlRestrictionを2回使用します exists そして、適切なカテゴリをフィルタリングする相関サブクエリ。 会社のみを取得します 両方のカテゴリに接続されています。

    crit.add( Restrictions.sqlRestriction( 
      "exists (select null from Company_Customercategory a where {alias}.company_Id = a.company_Id and a.CUSTOMERCATEGORYID = ?)",
      1, IntegerType.INSTANCE ) );
    crit.add( Restrictions.sqlRestriction( 
      "exists (select null from Company_Customercategory a where {alias}.company_Id = a.company_Id and a.CUSTOMERCATEGORYID = ?)",
      6, IntegerType.INSTANCE ) );
    

    これにより、正しい結果を提供する次のクエリが表示されます

    select this_.COMPANY_ID as COMPANY_ID1_2_0_, this_.COMPANY_NAME as COMPANY_NAME2_2_0_ 
    from COMPANIES this_ 
    where exists (select null from Company_Customercategory a 
                  where this_.company_Id = a.company_Id and a.CUSTOMERCATEGORYID =  ?) and 
          exists (select null from Company_Customercategory a 
                  where this_.company_Id = a.company_Id and a.CUSTOMERCATEGORYID = ?)
    



    1. MySQL挿入クエリから新しいレコードの主キーIDを取得しますか?

    2. Oracleの別のユーザーにストアドプロシージャの権限を付与する

    3. AWS上のWindowsでのShareplex入門、パート2

    4. Heroku Postgresエラー:PGError:エラー:リレーション組織が存在しません(ActiveRecord ::StatementInvalid)