Spring Data JPA 检查 SET 是不是包含对象

Posted

技术标签:

【中文标题】Spring Data JPA 检查 SET 是不是包含对象【英文标题】:Spring Data JPA check if a SET contains an objectSpring Data JPA 检查 SET 是否包含对象 【发布时间】:2018-07-02 10:49:01 【问题描述】:

我有一个具有此属性的名为 Device 的域对象

@ManyToMany(cascade = CascadeType.MERGE, fetch = FetchType.EAGER)
private Set<Driver> authorizedDrivers = new HashSet<>();

我想进行此查询,但出现错误 (antlr.NoViableAltException: 意外的 AST 节点:()

@Query("select dev from Device dev where dev.authorizedDrivers.contains(?1) ")
Set<Device> findDeviceByDriver(Driver driver);

【问题讨论】:

【参考方案1】:

JPQL 没有“包含”表达式。你可以试试这个查询:

@Query("select dev from Device dev join dev.authorizedDrivers d where d = ?1")
Set<Device> findDeviceByDriver(Driver driver);

【讨论】:

以上是关于Spring Data JPA 检查 SET 是不是包含对象的主要内容,如果未能解决你的问题,请参考以下文章