私はこれで初めてです。私を助けてください。hibernate hqlクエリで2つのテーブル間で内部結合を行うことができません
私の内部結合を以下のようになります。私は、内側の列idfurnに参加したいが、私はこれらのエラーを取得 select p.idprodus, p.denumire, p.cantitate from Produs p inner join Furnizor f on p.idfurn = f.idfurn
:
org.hibernate.QueryException:外側または必須に参加フルあなたは実体ではなく、テーブルを使用して、パス式HQLで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
たとえば、エンティティProductからすべての列を印刷したいとします.Productからクエリを実行しようとすると、このエンティティの外部キーである列には情報が表示されません。 sakila.entity.HistoryProduct \t sakila.entity.Provider \t sakila.entity.Categoryの代わりに値が表示されます。私にいくつかの提案をお願いします。大いに感謝する! – alin
私はあなたのコードを持っていないし、私は魔法のようなクリスタルボールを持っていないので、私はそれについてコメントすることは不可能です。しかし、私はあなたがHibernateの巨大な部分、つまりエンティティ間の関連付けを見逃したと思います。ドキュメントをお読みください。製品にプロバイダがあるため、私はp.providerを書きました。 Javaでは、私は 'p.getProvider()'を呼び出します。 HQLでは、p.providerを記述します。 –