我是新來的這個。請幫幫我。我不能在冬眠hql查詢中的兩個表之間進行內部聯接
我內心的加入看起來像這樣: select p.idprodus, p.denumire, p.cantitate from Produs p inner join Furnizor f on p.idfurn = f.idfurn
我想要在列idfurn內加盟,但是我得到這些錯誤:
org.hibernate.QueryException:外或全加盟絕應遵循的路徑表達式select p.idprodus, p.denumire, p.cantitate from sakila.entity.Produs p inner join Furnizor f on p.idfurn = f.idfurn
at org.hibernate.hql.classic.FromParser.token(FromParser.java:170)
at org.hibernate.hql.classic.ClauseParser.token(ClauseParser.java:86)
at org.hibernate.hql.classic.PreprocessingParser.token(PreprocessingParser.java:108)
at org.hibernate.hql.classic.ParserHelper.parse(ParserHelper.java:28)
at org.hibernate.hql.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:216)
at org.hibernate.hql.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:185)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
我不明白你爲什麼在HQL查詢中寫了p.provider,爲什麼你寫了那個p?對不起,我是初學者,在理解這方面我有一些小問題。 – alin 2012-04-19 20:38:40
例如,我想打印實體產品中的所有列,並且當我嘗試使用來自Product的查詢時,實體中外鍵的列不顯示它們包含的信息。它似乎sakila.entity.HistoryProduct \t sakila.entity.Provider \t sakila.entity.Category而不是值。請給我一些建議。萬分感謝! – alin 2012-04-19 21:03:08
我沒有你的代碼,我沒有魔術水晶球,所以我不可能評論它。但我認爲你只是錯過了Hibernate的一大部分:實體之間的關聯。閱讀文檔。我寫了p.provider,因爲產品有一個提供者。在Java中,我會調用'p.getProvider()'。在HQL中,我編寫了p.provider。 – 2012-04-21 06:27:49