0
我有任務加載類別(按名稱加載)和子類別中的所有產品。在使用MySQL之後,我創建了SQL查詢:在Hibernate中的NamedQuery中使用用戶定義的變量
select *
from product
where primaryCategoryID in (
select categoryID
from (select * from category) categories,
(select pv := (select categoryID from category where name = 'Tools') as ID) initialisation
where find_in_set(parentCategory, pv) > 0
and pv := concat(pv, ',', categoryID)
union
select categoryID from category where name = 'Tools'
)
正如您可以在類別名稱中提到'Tools'一樣。它運作良好但是,如果您有任何建議 - 您是受歡迎的。 在我的項目中,我正在使用Hibernate命名查詢。問題是變量@pv。現在它沒有編譯並拋出異常爲'意外的令牌...' 有誰知道如何在NamedQuery中使用變量?
謝謝,這是有用的評論。問題是如何通過Hivernate(Named-Query)將所有產品加載到類別及其子類別中。 – user3650408
發佈您的實體和當前的代碼。簡而言之,您需要加載類別列表(按名稱初始列表),加入子類別(不知道您在實體中的父 - 子映射),並加入產品(再次不知道您的實體提供正確的映射) 。深度= 1是很好的。如果你需要所有類別的子樹,恐怕hibernate不會提供這樣做的方法。所以你可以使用本地查詢並將它們映射到期望的實體。 – StanislavL
非常感謝。對於1深度它的作品。所以,當深度超過1(原始問題)時,問題是開放的。如果Hibernate不支持這個查詢,你對過程/函數有什麼看法? Hibernate是否可以通過調用過程/函數加載數據? – user3650408