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

标签 java jpa spring-boot spring-data object-persistence

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

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

我想进行此查询,但出现错误 (antlr.NoViableAltException: unexpected AST node: ()

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

最佳答案

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

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

关于java - Spring Data JPA 检查 SET 是否包含对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48404732/

相关文章:

java - 文本验证失败

java - 当另一个事务删除惰性子级时的 JPA-Hibernate 行为

java - 有什么理由用同步集合初始化实体属性吗?

java - 有什么方法可以在不重新启动的情况下清除 weblogic 服务器中的实体缓存? [用于调试]

java - 在将应用程序迁移到 Spring Boot 后使用 Spring Data Rest 时,我观察到带有 @Id 的实体属性不再编码为 JSON

java - Spring Boot HTTPServletRequest 无法通过测试正确使用

JAVA双链表-单元测试失败

java - 如何自动查找Java字节码中的相似之处?

java - 将没有主要方法(带有外部 jar)的 Java 项目导出到 Eclipse 中的 Jar

java - 从计算引擎中的 docker 容器连接到 Cloud SQL