Spring 带@JoinTable的JPA QBE

Spring 带@JoinTable的JPA QBE,spring,hibernate,jpa,spring-data,query-by-example,Spring,Hibernate,Jpa,Spring Data,Query By Example,我通过SpringDataJPA使用最近发布的QBE功能。一切似乎都很好,唯一的例外是注释为@JoinTable的字段似乎不起作用。我在实体上尝试了简单的原语,以及@JoinColumn关系,查询的性能与预期一样。但是,一旦我尝试填充一组@JoinTable关系的对象,这些数据就不会成为我查询的一部分(我检查了记录的SQL)。我们使用Hibernate作为我们的JPA提供程序,所以问题可能在于实现。我只是想假设我现在做错了什么 @ManyToMany @JoinTable(name = "joi

我通过SpringDataJPA使用最近发布的QBE功能。一切似乎都很好,唯一的例外是注释为@JoinTable的字段似乎不起作用。我在实体上尝试了简单的原语,以及@JoinColumn关系,查询的性能与预期一样。但是,一旦我尝试填充一组@JoinTable关系的对象,这些数据就不会成为我查询的一部分(我检查了记录的SQL)。我们使用Hibernate作为我们的JPA提供程序,所以问题可能在于实现。我只是想假设我现在做错了什么

@ManyToMany
@JoinTable(name = "join_table", joinColumns = @JoinColumn(name = "userid", nullable = false), inverseJoinColumns = @JoinColumn(name = "groupid", nullable = false))
private Set<Group> groups= new HashSet<>(0);
@manytomy
@JoinTable(name=“join_table”,joinColumns=@JoinColumn(name=“userid”,nullable=false),inverseJoinColumns=@JoinColumn(name=“groupid”,nullable=false))
私有集组=新哈希集(0);
这是不起作用的带注释的字段。为了为我的QBE填充它,我只需创建一个具有我正在寻找的特定名称的新组。我需要用户属于该组才能返回。但是,生成的SQL在where子句中不包含任何关于组的内容

Example-Example=Example.of(用户)

返回userRepo.findAll(例如,可分页)

以及调用JPA存储库的代码段


任何想法都将不胜感激。

目前Spring Data JPA的QBE功能只支持
SingularAttribute
s。因此,
@JoinTable
不能使用。请查看参考手册中的内容。

谢谢您的回复。如果我需要一个PluralAttribute作为查询的一部分,有没有办法将QBE与其他东西结合起来以实现这一点,或者我需要在添加支持之前不使用QBE?您可以尝试像在中一样构建自己的
规范
,添加所需的路径,然后将其传递给
JPAspecificationExecution