0
我試圖在JPA中做一些簡單的事情。如何從基於另外兩個表的表獲取記錄JPA
我有一個表業務:
BusinessId name
------------ ------
1 Joe
2 bob
而且Products表:
productID name
------------ ------
1 Pen
2 paper
因爲他們相關的MENY一對多我創建另一個表businessesHasProductID:
BusinessId productID
------------ -----------
1 1
1 2
2 2
現在我要選擇BusinessId和productID形式的businessHasProductID,其中Busi的名稱爲nessId ='x'和productID的名稱='y'。
我構建了表格,然後創建了實體類(從netBeans中的嚮導)。我知道如何獲得Businesses.name ='x'的「Businesses」表,並且我知道如何獲得Products.name ='y'的「Products」表。但我想結合這些結果並獲取ID。
我試圖做的:
Query query = getEntityManager().createQuery("
SELECT b FROM businessesHasProductID WHERE b.BusinessId IN
(SELECT t0.BusinessId FROM Businesses t0 WHERE t0.BusinessId = 'x')
AND b.productID IN
(SELECT t1.productID FROM Products t1 WHERE t1.productID = 'y')
");
這沒有奏效。它抱怨IN包含無效數據。
感謝。我正是這個意思。但實際上表businessHasProductID有一個字段「價格」。所以我想從businessHasProductID中進行選擇。 – uriel
的那就更簡單了:從BusinessHasProduct BHP內選擇business.businessId,product.productId 加入bhp.business業務 內加入bhp.product產品 其中business.name = 'X' 和product.name = 'Y' –
我會試試看。謝謝。 – uriel