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

Nuñ*_*ada 4 java jpa object-persistence spring-data spring-boot

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

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

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

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

Cep*_*pr0 5

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

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