我正在尝试在 JPA 中做一些简单的事情。
我有一张桌子
BusinessId name
------------ ------
1 Joe
2 bob
和表产品:
productID name
------------ ------
1 Pen
2 paper
因为它们是一对多关联的,所以我创建了另一个表 businessHasProductID:
BusinessId productID
------------ -----------
1 1
1 2
2 2
现在我想从 businessHasProductID 中选择 BusinessId 和 productID,其中 BusinessId 的名称 = 'x',productID 的名称 = 'y'。
我构建了表,然后创建了实体类(来自 netBeans 中的向导)。我知道如何获取 Businesses.name = 'x' 的“企业”表,并且我知道如何获取 Products.name = 'y' 的“产品”表。但我想结合这些结果并获取 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 包含无效数据。