나는 이것으로 새롭다. 도와주세요. select p.idprodus, p.denumire, p.cantitate from Produs p inner join Furnizor f on p.idfurn = f.idfurn
hibernate hql 쿼리에서 두 테이블 간의 내부 조인을 할 수 없습니다.
내가 내부는 열 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를 썼다. 자바에서는'p.getProvider()'를 호출 할 것입니다. HQL에서는 p.provider를 씁니다. –