2017-03-15 93 views
1

我有2個表,我試圖使用連接之間沒有類 (StData和ApFlow)之間的任何映射。我有這樣的查詢,我在數據庫中得到所需的結果。 有沒有可能做映射,如果是的話怎麼辦。請有人幫助我。 使用此查詢得到QueryException: Unable to resolve path [ApFlow.ApNumber]HIbernate外部連接沒有映射

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

可以與Hibernate 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中必須有一個連接的映射。可能你可以使用inner select重寫你的查詢。 –

+0

好的謝謝。我會接受你的回答。我是新來的SQL /休眠可以請你展示它。會非常有幫助。 – user7620991