gpt4 book ai didi

java - findOne(id) Spring Repository 返回 null

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:14 25 4
gpt4 key购买 nike

我从 Controller 中的 URL 获取作为参数传递的 id,然后我希望能够获取具有该 id 的用户的名称。我有一个具有此功能的 UserService :

public User getUserById(long id);

该函数的实现是:

@Autowired
private UserRepository userRepository;
@Override
public User getUserById(long id) {
return userRepository.findOne(id);
}

这是我想要访问它的 Controller :

@RequestMapping(value = "/user", method = RequestMethod.GET, params = {"getId"})
@ResponseBody
public ModelAndView getClientStat(@RequestParam(value="getId", required = true) String getId) {
ModelAndView modelAndView = new ModelAndView();

long userId=0;
userId=Long.parseLong(getId);
User u=userService.getUserById(userId);
modelAndView.addObject("id", u.getName());
modelAndView.setViewName("user");
return modelAndView;
}

我有一个实体User,其中包含Long idString nameString lastName以及每个实体的getter和setter。但是,当运行此代码时,它返回空指针异常,该异常来 self 调用 getUserId(userId) 的部分。这是我的用户实体:

@Entity
public class User{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "user_id")
private Long id;

...
}

和用户存储库:

@Repository("userRepository")
public interface UserRepository extends JpaRepository<User,Long> {
}

如何解决这个问题?

服务接口(interface):

public interface UserService{
public List<User> getAllUsers();
public User getUserById(long id);
}

在我的 Controller 中,我有:

@Autowired
private AdminService adminService;

private UserService userService;

可能是使用的注释有错误吗?我应该在 UserService 类中使用注释吗? @Service 注解用在 UserServiceImpl 类中。

最佳答案

我实际上没有添加适当的注释。在 Controller 中调用服务时,未将 @Autowired 放在 UserService 上。使用注释我的问题就消失了。

关于java - findOne(id) Spring Repository 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46457276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com