我是新来的这个。请帮帮我。我不能在冬眠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