2017-03-15 10 views
1

2つのテーブルがあり、クラス間のマッピングを行わずに結合を使用しようとしています (StDataとApFlow)。このようなクエリがあり、データベースに必要な結果が得られます。 もしそうなら、マッピングなしで行うことは可能ですか?誰か助けてください。 このクエリでは、QueryException: Unable to resolve path [ApFlow.ApNumber]を取得しています。マッピングなしで外部結合を実行する

session.createQuery("FROM StData " 
       + "LEFT OUTER JOIN ApFlow " 
       + "ON StData.Apart = ApFlow.Apart and StData.StTitle = ApFlow .StTitle " 
       + "WHERE ApFlow.ApNumber= :ApNumber and ApFlow.Apart= :Apart") 

     .setParameter("ApNumber",ApNumber) 
     .setParameter("Apart", Apart) 
     .list(); 

答えて

1

あなたが休止状態5.1+でそれを行うことができます。 Join unrelated entities in JPA

をそして、おそらく、あなたは

このクエリは外積を使用してシミュレートすることができますエイリアスを追加する必要があります。しかし、それが真ではないことを覚えておいてください。left join(原因はnullです)。これはinner joinのようなものです。

"FROM StData st, ApFlow flow" 
    + "WHERE st.Apart = flow.Apart and st.StTitle = flow.StTitle " 
    + "and flow.ApNumber= :ApNumber and flow.Apart= :Apart" 
+0

Hibernate 4ではマッピングを使用する必要がありますか?その他の選択肢はありますか? – user7620991

+0

@ user7620991はい、Hibernate 4の結合のためのマッピングを持つことは必須です。おそらく、内部選択を使ってクエリを書き直すことができます。 –

+0

ありがとう。私はあなたの答えを受け入れるつもりです。私はsql/hibernateを初めて使用しています。非常に役立つだろう。 – user7620991

関連する問題