如何使用JPA存储库执行INSERT语句

时间:2018-09-11 14:32:04

标签: mysql sql spring spring-data-jpa spring-data

我知道Jpa Repository提供了save()方法来持久化对象。但是我想自己做,我试图在表中插入内容,但是POSTMAN响应中出现错误"could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement"。这是我的代码

我的资料库

    @Modifying
    @Query(value = "insert into TipoAcesso (accesTypeId,accessTypeName,subAcessTypeName,user_id) VALUES (:accesTypeId,Quarto,null,:user_id)",nativeQuery = true)
    @Transactional
    void insertAccesTypeQuartosToUser(@Param("user_id") Long userId);

我的控制器

    @PostMapping(value = "/acessoCozinha")
    public ResponseEntity<Response<TipoAcesso>> insertAccessCozinha(HttpServletRequest request) {

        TipoAcesso tipoAcesso = new TipoAcesso();
        Response<TipoAcesso> response = new Response<>();
        try {  
            tipoAcesso.setUser(userFromRequest(request)); 
            tiposAcessoService.insertAccesTypeCozinhaToUser(tipoAcesso);

        }   catch (Exception e) {
            response.getErrors().add(e.getMessage());
            return ResponseEntity.badRequest().body(response);
        }

        return ResponseEntity.ok(response);
    }

0 个答案:

没有答案