本文介绍了JPQL(JPA)如果列表有交集则查找对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个类,每个类都包含一个标签列表.现在,我想找到ClassA的每个对象,其中包含ClassB列表中的任何项目. JPQL有可能吗?还是使用单个查询?

I have two Classes each of which hold a list of Labels. Now I want to find every object of ClassA that holds any item of the list of ClassB. Is this possible with JPQL? Or using a single query?

public class ClassA {
  private List<Label> labels;
}

public class ClassB {
  private List<Label> labels;
}

@Repository
public interface ClassARepository extends JpaRepository<ClassA, Long> {

  @Query("SELECT c FROM ClassA c WHERE :labels ____ c.labels")
  public List<ClassA> findAllByLabels(@Param("labels") List<Label> labels);

}

谢谢

推荐答案

尝试以下操作(我没有尝试):

Try the following (I did not try it):

SELECT DISTINCT(a) FROM ClassA a, ClassB b INNER JOIN a.labels labelA INNER JOIN b.labels labelB WHERE labelA = labelB

这篇关于JPQL(JPA)如果列表有交集则查找对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-18 12:10