使用mongo仓库时参数没有名称错误

问题描述 投票:0回答:1

我有下一个存储库:

interface UserRepository extends MongoRepository<User, String> {

    Optional<User> findById(@Param("id") String id);

}

当我尝试使用方法 findById() 时,我收到错误

参数org.springframework.data.mapping.Parameter@b84c8964没有名称

我在搜索时找到的唯一解决方案是添加@Param注释,但这对我没有帮助。该问题的原因是什么以及如何解决?

用户实体:

@Document
class User implements UserDetails {

  @Id
  @NonNull
  private String id

  @NonNull
  @Indexed(unique = true)
  private String email

  @JsonIgnore
  @NonNull
  private String password

  @NonNull
  private String role

  @NonNull
  private UserInfo userInfo

  @Override
  Collection<? extends GrantedAuthority> getAuthorities() {
      return List.of(new SimpleGrantedAuthority(role))
  }

  @Override
  String getPassword() {
      return password
  }

  @Override
  String getUsername() {
      return email
  }

  @Override
  boolean isAccountNonExpired() {
      return true
  }

  @Override
  boolean isAccountNonLocked() {
      return true
  }

  @Override
  boolean isCredentialsNonExpired() {
      return true
  }

  @Override
  boolean isEnabled() {
      return true
  }

  void setEmail(@NonNull String email) {
      this.email = email
  }

  void setPassword(@NonNull String password) {
      this.password = password
  }

  void setRole(@NonNull String role) {
      this.role = role
  }

  @NonNull
  UserInfo getUserInfo() {
      return userInfo
  }

  void setUserInfo(@NonNull UserInfo userInfo) {
      this.userInfo = userInfo
  }

  @NonNull
  String getId() {
      return id
  }

  void setId(@NonNull String id) {
      this.id = id
  }

  @NonNull
  String getEmail() {
      return email
  }

  @NonNull
  String getRole() {
      return role
  }

  User(String email, String password, String role, UserInfo userInfo) {
    this.email = email
    this.password = password
    this.role = role
    this.userInfo = userInfo
}

}

java spring
1个回答
0
投票

我不确定,但我认为 MongoRepository 已经实现了该方法。您可以尝试从存储库中删除它并直接在您的服务或控制器上使用它吗?

© www.soinside.com 2019 - 2024. All rights reserved.