У меня SQL-запрос, как показано ниже.Я хотел бы взять общий product_id, authorization_ids для определенных merchantIds.В этом примере продавец 20000 имеет продукт1, авторизацию1 и продукт2, авторизацию1, тогда как у других продавцов есть только продукт1, авторизация 1.
SELECT product_id,authorization_id FROM ACQ_MERCHANT_PRODUCT_AUTH WHERE merchant_Id = 20000
Intersect
SELECT product_id,authorization_id FROM ACQ_MERCHANT_PRODUCT_AUTH WHERE merchant_Id = 20001
Intersect
SELECT product_id,authorization_id FROM ACQ_MERCHANT_PRODUCT_AUTH WHERE merchant_Id = 20002
Приведенный выше запрос дает правильный результат, который является продуктом1, авторизация1.Я пытаюсь реализовать это в jpa:
@Repository
public interface MerchantProductAuthorizationRepository extends
JpaRepository<MerchantProductAuthorizationEntity, Long> {
@Query("SELECT new com.ykb.acq.application.sweep.util.ProductAuthMap(m.product.id, m.authorization.id) FROM MerchantProductAuthorizationEntity m WHERE m.merchantId IN (:merchants) GROUP BY m.product.id, m.authorization.id")
List<ProductAuthMap> findIntersactionOfProductAndAuthorizations(@Param("merchants") Set<Long> merchants);
}
Но это дает мне больше линий, чем пересечение.(продукт1, авторизация1 и продукт2, авторизация2)
Как получить тот же результат?