我使用jpa,我有以下实体:
@ManyToMany
@JoinTable(
name = "users_roles",
joinColumns = @JoinColumn(
name = "user_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(
name = "role_id", referencedColumnName = "rid"))
private Collection<UserRole> roles;
这是我的规范过滤器
if (!filter.getRoles().isEmpty()) {
System.out.println("Append roles");
predicates.add(cb.equal(root.get("roles"), filter.getRoles()));
}
我想要做的是根据过滤器中给出的角色进行查询。我在用户配置文件实体中有角色集合,我的搜索在用户配置文件实体上。
这就是春天显示我的错误。
java.sql.SQLException: No value specified for parameter 1
could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet
我在收集查询方面有点困惑。
答案 0 :(得分:0)
这是我一直在搜索的答案的更新。也许它会帮助别人而不是给出有效问题的负面分数。
if (filter.getRoles() != null) {
UserRole role = filter.getRoles().get(0);
System.out.println("Append roles");
predicates.add(cb.equal(root.join("roles").get("roleName"), role.getRoleName()));
}