2011-10-24 1 views
-2

를 최대 절전 모드, 나는 HQL에 변환을 수행하는 몇 가지 문제를 얻고, JPA에서 쿼리에 사용되는 :SQL - 나는이 조로의 SQL 스크립트를

SELECT f.idprovider, pe.name from provider f 
inner join person pe 
on(f.idperson = pe.idperson) 
inner join product_provider pf 
on(f.idprovider = pf.idprovider) 
inner join product p 
on(pf.idproduct = p.idproduct) 
inner join item i 
on(p.idproduct = i.idproduct) 
where i.iditem = 1 



SELECT f.idprovider, pe.name, pe.cnpjf from product_provider pf 
inner join provider f 
on(pf.idprovider = f.idprovider) 
inner join coliseusys.person pe 
on(f.idperson = pe.idperson) 
inner join product p 
on(pf.idproduct = p.idproduct) 
where p.idproduct = (select p2.idproduct from item i inner join product p2 
on(i.idproduct = p2.idproduct) where i.iditem = 1) 

이 SQL을은을 똑같은, 그리고 나는 많은 결과를 얻지 않고 그 중 하나에서 hql을 시도했다. 최대 절전 모드의 매핑이 괜찮습니다.

어떤 아이디어가 있습니까?

답변

0

번역은 즉시입니다 :

select f.id, pe.name from Provider f 
inner join f.person pe 
inner join f.products p 
inner join p.items i 
where i.id = :itemId 

  • 공급자 사람
  • 제공 업체와 toOne 연결을 가지고 있다고 가정한다 조인 테이블 product_provider
  • 을 사용하여 제품과 toMany 연관이있다
  • 제품에는 OnetoMany와 아이템이 있습니다.

그렇지 않은 경우 엔티티를 모른 채 HQL을 수행하는 것이 불가능하기 때문에 매핑을 설명하십시오. 그것은 테이블을 모른 채 SQL을 수행하는 것과 같습니다.

http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#queryhql을 읽어야합니다. 여기에는 HQL 쿼리에 대한 많은 예제가 있으며 이들이 어떻게 훌륭한 세부 사항에서 작동하는지 설명합니다.

+0

여러분, 감사합니다. 제품에 참조를 추가하여 문제를 해결했습니다. 그리고 미안 해요, 내 영어 ins't 아주 좋은 – Luciano

관련 문제