2011-10-24 2 views
-2

を休止:SQL - 私は、これらの補数のSQLスクリプトを持っている、と私はJPAのクエリで使用されるように、HQLで 翻訳を実行するためにいくつかの問題を取得しています

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文を実行します同じこと、そして私は多くのことを試してみたが、その結果から何も得られなかった。 ハイバネーションでのマッピングはOKです。

答えて

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 

これは

  • プロバイダが、その人物
  • プロバイダとトゥーンの関連性を持っていることを想定している結合テーブルのproduct_provider
  • を使用して、製品とのtoManyの関連性を持っています
  • 商品には、OnetoManyの商品との関連があります。

そうでない場合は、エンティティを知らずにHQLを実行することが不可能なため、マッピングを記述してください。これは、テーブルを知らなくてもSQLを実行するようなものです。

http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#queryhqlをお読みください。 HQLのクエリの例がたくさんあり、それらがどのように詳細に動作するかを説明しています。

+0

大丈夫、あなた、あなたのattentionのためにありがとう。 この問題は、製品にリファレンスを追加することで解決されました。 そして、申し訳ありませんが、私の英語は非常に良いins't – Luciano

関連する問題