java - 从 Controller 中的最后一次插入中获取生成的 Id,Spring

标签 java spring spring-boot

这是我在数据库中保存表单数据的 Controller :

@RequestMapping(value = "/user/newUser", method = RequestMethod.POST)
public ModelAndView createNewSurvey(@Valid User user, BindingResult bindingResult) {
    ModelAndView modelAndView = new ModelAndView();
    userService.saveUser(user);
    modelAndView.addObject("successMessage", "Added user!");
    modelAndView.addObject("user", new User());
    modelAndView.setViewName("user/newUser");
    return modelAndView;
}

调用 saveUser 后,如何在该 Controller 中获取为该用户生成的 ID,以便我可以使用它来调用另一个函数? 谢谢

编辑:

用户服务实现:

@Service("userService")
public class UserServiceImpl implements UserService {

@Autowired
private UserRepository userRepository;
@Override
public void saveUser(User user) {
    userRepository.save(user);
}

最佳答案

试试下面的方法让我知道它是否适合你

@Override
public User saveUser(User user) {
    return userRepository.save(user);
}

还更改接口(interface)方法以在 UserService 接口(interface)中返回用户

public User saveUser(User user);

然后在 Controller 中从返回的 UserObject 中调用 getId()

User newUser = userService.saveUser(user);
newUser.getId();

关于java - 从 Controller 中的最后一次插入中获取生成的 Id,Spring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46516950/

相关文章:

java - ValueChangeListener 中完成的更改不会反射(reflect)在其他地方

java - 哪些变体字符串反转更好?

java - 具有 Sum 函数的 Spring 规范

java - Struts 排除带有 Spring 的图案

java - NGINX反向代理背后的SpringBoot API REST

java - Spring Boot 中用户定义的休息端点

java - Thymeleaf 不热插拔 Intellij

java - docker 中的 Spring/Hibernate 应用程序不会删除列

spring - 我需要@Transactional和ElasticsearchRepository吗?

java - 在 Spring Boot Java 应用程序中调用自定义 Rest 模板