我如何在Spring Boot中使用存储过程MySQL?

时间:2019-08-02 08:23:30

标签: spring-boot jpa

我正在尝试解决一个问题:当用户单击删除记录而不是删除记录时,该记录将状态更改为isempty(x(1,2))

我想在MySQL中创建'false'"getAllUser"之类的存储过程,但是我却感到困惑。

这是我项目的结构:

"changeStatus"

然后,我希望索引页仅获取状态为-configuration JpaConfiguration -controller RestApiController -model User -Repository UserRepository -Service UserService UserServiceImpl 的记录。

  1. 程序
'true'
  1. RestApiController
CREATE DEFINER=`root`@`localhost` PROCEDURE `getAllUsers`()
    BEGIN
    SELECT * FROM APP_USER where status = 0;
    END
  1. 模型/用户
     @RestController
        @RequestMapping("/api")
        public class RestApiController {
        @Autowired
            UserService userService;
            @RequestMapping(value = "/user/", method = RequestMethod.GET)
            public List<User> getAllUsers(Boolean status){
                Boolean statusWhere = org.apache.commons.lang3.BooleanUtils.isNotTrue(false);
                List<User> users = userServiceImpl.getAllUsers(statusWhere);
                if (users == null){
                    return new ArrayList<>();
                } else {
                    return users;
                }
            }
        // Change status
        @RequestMapping(value = "/user/{id}", method = RequestMethod.DELETE)
            public ResponseEntity<?>deleteUserById(@PathVariable("id") long id){
                logger.info("Delete User with id {}", id);
                User currentUser = userService.findById(id);
                currentUser.setStatus(true);
                return new ResponseEntity<User>(currentUser, HttpStatus.OK);
            }
  1. service / UserServiceImpl
    @Entity
    @NamedStoredProcedureQueries({
            @NamedStoredProcedureQuery(
                    name = "getAllUsers",
                    procedureName = "getAllUsers",
                    resultClasses = {User.class},
                    parameters = {
                            @StoredProcedureParameter(
                                    mode = ParameterMode.IN,
                                    name = "status",
                                    type = Boolean.class)
                    }
            )
    })

0 个答案:

没有答案