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 是不是包含对象的主要内容,如果未能解决你的问题,请参考以下文章
即使 JPA 实体不脏,我是不是可以强制 spring-data 更新可审计字段?
检查 Spring 数据 JPA 查询中的 List 参数是不是为空
Spring Data JPA:是不是可以让spring从表格底部检索数据到顶部顺序
对 Spring Data JPA @Query 进行单元测试是不可能的,真的吗?