相关文章推荐
豪爽的枕头  ·  29. ...·  1 年前    · 
public interface SaveFormDao extends BaseJpaRepository {

4. service中直接保存:直接调用Spring的 saveAndFlush方法保存数据

@Service
@Slf4j
public class saveFormService {
    @Autowired
    private SaveFormDao saveFormDao ;
     * @param saveForm
    public AasApplyForm saveApplyForm(SaveForm SaveForm ){
        return saveFormDao .saveAndFlush(applyForm);

5. Controller中:

@RestController
@RequestMapping("/save")
@Slf4j
public class saveFormController  {
    @Autowired
    SaveFromService saveFormService ;
 @PostMapping("/testSaveForm")
    public ResponseMessage testSaveForm(@RequestBody SaveForm form) {
           SaveForm res = saveFormService.saveApplyForm(form);
           return ResponseMessage.ok(res);
        }catch (Exception e){
            log.error("###########异常");
            log.error(e.getMessage(), e);
            log.error("################################");
            e.printStackTrace();
        return ResponseMessage.ok("");

测试结果:

1. 请求中指定了id, 和version 但是数据库中没有这条记录,则会用数据中新的ID,生成新的记录,version还是用指定的version:

2. 请求中指定了id, 和version 但是数据库中有这条记录,结果会更新

数据库中version也会更新:

2. 请求中指定了id, 和version 但是数据库中有这条记录,但是version不正确(和数据库不一致)

代码会抛出异常

 optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) : [comXXXX.entity.SaveForm#2654]

4. 请求中不指定了id, 和version ,数据库中会新增一条记录,并且version是0

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2020-05-07 09:33:30 [ERROR] org.springframework.boot.SpringApplicati...
optimistic locking failednested exception is org.hibernate.StaleObjectStateException: Row was u...
原因:就是要修改的实体的version和数据库中的version对不上。hibernate就会认为别人已经并发修改了数据。 解决办法:将数据库中的version从前端回传回来。如果version和数据库一致,还是经常出现这个问题,可以考虑使用悲观锁。
一、问题描述 新开发的系统,往往可能需要将旧版的系统中的历史数据,用脚本的方式在新系统中跑一遍业务流程,其实可能是用Java代码自动调用一些业务流程接口。 在执行过程中发现报错: 2021-01-27 19:32:46.300 [http-nio-5090-exec-4] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet]:182 - Servlet.service() for servlet [dispatcherServlet] in context with path
今天遇到了nested exception is org.hibernate.MappingException: Unknown entity的问题,在网上查了方法好多,都和我的不一样。 问题描述如下: 1、我用spring+hibernate,程序在本机myeclipse访问本地mysql没有问题。 2、我在本机把数据库连接改为informix的可以访问,也可以写库。 3、我把代码
Spring Boot项目运行报错:org.hibernate.exception.SQLGrammarException: error performing isolated ;workSQL [n/a]..问题:原因以及解决办法 今天在进行spring boot项目测试时候,运行报错如下图: org.springframework.dao.InvalidDataAccessResourceUsageException: error performing isolated work; SQL [
Unhandled exception: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not execute statement at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1692) at org.hib.
project->clean...清除类修改后的导入信息报错 [ERROR] 2017-03-22 10:09:45.060method:org.quartz.core.JobRunShell.run(JobRunShell.java:208) nested exception isorg.hibernate.StaleObjectStateException: Row was upda
could not prepare statement; nested exception is org.hibernate.exception.JDBCConnectionException: could not prepare statement
引用\[1\]:根据您提供的引用内容,报错信息显示为"could not prepare statement; nested exception is org.hibernate.exception.JDBCConnectionException: could not prepare statement"。这个错误通常与SQL语句执行时的问题有关。\[3\]根据官方文档的解释,@Modifying和@Transactional注解可以用于修改查询方法,而不是将其注释到域类上。@Modifying注解只在与@Query注解结合使用时才相关。这个错误可能是由于SQL语句的问题导致的。您可以检查SQL语句是否正确,并确保使用了正确的注解来执行查询。如果问题仍然存在,您可能需要进一步排查数据库连接的问题。 #### 引用[.reference_title] - *1* *3* [jpa语句:nested exception is org.hibernate.exception.GenericJDBCException: could not extract ...](https://blog.csdn.net/qq_42818496/article/details/107608978)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [org.hibernate.exception.JDBCConnectionException:could not execute query原因及解决方法](https://blog.csdn.net/liuyingan/article/details/84364289)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]