我有实体用户
@Entity
@Data
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String username;
private String password;
}
用户库
public interface UserRepository extends JpaRepository<UserRepository, Long> {
User findByUsername(String username);
}
Controller
@RestController
@RequestMapping("/user")
public class UserController {
private UserRepository userRepository;
private BCryptPasswordEncoder bCryptPasswordEncoder;
public UserController(UserRepository userRepository, BCryptPasswordEncoder bCryptPasswordEncoder) {
this.userRepository = userRepository;
this.bCryptPasswordEncoder = bCryptPasswordEncoder;
}
@PostMapping("/sign-up")
public void signUp(@RequestBody User user) {
user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
userRepository.save(user);
}
}
在类 UserController 的 signUp 方法 userRepository.save(user) 中抛出错误 Inferred type 'S' for type parameter 'S' is not within its bound;应该实现 'Repository.UserRepository
最佳答案
您的 Repository 接口(interface)声明不正确。
改变
public interface UserRepository extends JpaRepository<UserRepository, Long>
到
public interface UserRepository extends JpaRepository<User, Long>
关于java - Jpa 存储库保存类型参数 'S' 的推断类型 'S' 不在其范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50722517/