JPQL (JPA) Find Object if list have intersection

十年热恋 提交于 2019-12-07 16:17:18

问题


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);

}

thanks


回答1:


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


来源:https://stackoverflow.com/questions/28831350/jpql-jpa-find-object-if-list-have-intersection

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!