JPA查询连接表

Ner*_*ron 6 jpa jpql

我有3个表,如:

A                              AB                        B
-------------                  ------------              ---------------
a1                              a1,b1                    b1
Run Code Online (Sandbox Code Playgroud)

AB是A和B之间的转换表

有了这个,我的类在这两个类中没有相互组合.但我想知道,使用JPQL查询,如果我的元素存在于AB表中的A表中的任何记录.只需数字或布尔值就是我需要的.

因为AB是一个转换表,所以没有模型对象,我想知道我是否可以使用我的Repository对象中的@Query来完成此操作.

moj*_*-de 6

必须在要在JPQL中查询的实体中建模AB表.因此,您必须将其建模为自己的实体类或A和/或B实体中的关联.


vel*_*s4j 5

我建议使用Native查询方法而不是JPQL(JPA也支持Native查询)。让我们假设表 A 是客户,表 B 是产品,AB 是销售。以下是获取客户订购的产品列表的查询。

entityManager.createNativeQuery("SELECT PRODUCT_ID FROM 
                                     SALE WHERE CUSTOMER_ID = 'C_123'");
Run Code Online (Sandbox Code Playgroud)