Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Spring Boot中以编程方式删除并重新创建表_Spring_Spring Boot_Spring Mvc_Jpa - Fatal编程技术网

在Spring Boot中以编程方式删除并重新创建表

在Spring Boot中以编程方式删除并重新创建表,spring,spring-boot,spring-mvc,jpa,Spring,Spring Boot,Spring Mvc,Jpa,因此,我正在构建一个数据库管理应用程序,我希望用户能够导入和覆盖应用程序中的表。我已尝试在服务中使用deleteAll方法: public String deleteAllDocuments() { documentRepository.deleteAll(); return "Successfully deleted all documents."; } 但我遇到了几个问题: id不重置;它只是继续这个序列 出于某种原因,当我试图用相同的数据覆盖它,并根据

因此,我正在构建一个数据库管理应用程序,我希望用户能够导入和覆盖应用程序中的表。我已尝试在服务中使用deleteAll方法:

public String deleteAllDocuments() {
    documentRepository.deleteAll();
    return "Successfully deleted all documents.";
}
但我遇到了几个问题:

  • id不重置;它只是继续这个序列
  • 出于某种原因,当我试图用相同的数据覆盖它,并根据(比如)账号查找实体时,它仍然试图查询已删除的数据并给出一个
  • 所以这里发生的基本情况是,我试图用另一个文档替换id为1的文档。这使得表的当前内容只是一个id为2的文档(doc 1和doc 2是相同的),现在当我用帐号搜索它时,它给出了一个错误(我的理论是它查找缓存,因为它似乎仍然可以查找删除的实体)

    这是我用来查询的代码

    Document document = documentRepository.findDocumentByAccountNumber(someOtherEntity.getForeignDocumentAccountNumber());
    

    基于以上假设,我现在想要实现的是重置或删除表,并通过控制器端点以编程方式重新创建它。这可能吗?也许你们可以分享一些处理这个问题的想法?

    如果需要重置ID,可以使用SQL中的
    截断表
    ,通过本机查询调用它
    Document document = documentRepository.findDocumentByAccountNumber(someOtherEntity.getForeignDocumentAccountNumber());