簡體   English   中英

HQL查詢連接表

[英]HQL query join tables

我正在使用hibernate連接到我的數據庫以獲得項目。

我想要一個查詢,使用特定語言的描述和名稱從我的數據庫中獲取產品。 我所擁有的參數是該語言的簡稱,因此首先我必須獲取該語言的id,然后獲取所需語言的文本。

我嘗試了以下hql查詢,但沒有成功。

from Products as p
where p.productlanguages.languages.shortname like 'eng'

這是數據庫中應該來自的部分的圖像: 數據庫

我有一個sql查詢所需的結果,但我似乎無法讓它在hibernate中工作。 但我更喜歡在hql中這樣做。

SELECT * FROM products p 
INNER JOIN productlanguage pl ON pl.Products_id = p.id 
WHERE pl.Languages_id = 
(
SELECT id FROM languages 
WHERE Shortname = 'eng'
);

誰能告訴我如何構建這個hql查詢? 謝謝。

試試以下:

   from Products p INNER JOIN p.productlanguages pl
   where pl.languages.shortname ='eng'

我假設您已將Product-Productlanguages關系映射為OneToManyProductlanguages-Langages ManyToOne關系為ManyToOne ,如ER圖中所示。

編輯:public Languages getLanguages() {barcode ,最后刪除barcode行中的Productlanguage映射中似乎存在拼寫錯誤。

@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="Languages_id", nullable=false, insertable=false, updatable=false)
public Languages getLanguages() {barcode

    return this.languages;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM