2

我正在通过 spring-data-jpa 使用最近发布的 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);

那是带注释的字段不起作用。为了为我的 QBE 填充它,我只需创建一个具有我正在寻找的特定名称的新组。我需要用户属于该组才能返回。但是,生成的 SQL 不包括关于 where 子句中的组的任何内容。

Example<User> example = Example.of(user);

return userRepo.findAll(example, pageable);

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

任何想法将不胜感激。

4

1 回答 1

2

目前 Spring Data JPA 的 QBE 特性只支持SingularAttributes. 因此@JoinTable不能使用。请查看参考手册中的“执行示例”部分

于 2016-08-23T11:41:03.560 回答