集合Jpa Spring Data返回没有为参数1指定值

时间:2018-01-18 04:31:38

标签: jpa collections spring-data-jpa criteria-api

我使用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

我在收集查询方面有点困惑。

1 个答案:

答案 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()));
        }