如何从Spring Boot列表中的所有表中删除数据

时间:2020-11-04 12:27:47

标签: spring spring-boot jpa spring-data-jpa

我想创建一个服务,该服务需要一个表名列表并从每个表中删除(截断)所有数据。每个表都有一个对应的JPARepository。如何在Spring Boot中做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用本机SQL截断表:

    @Autowired
    DataSource dataSource;


    public void truncateTables(List<String> tableNames) {
        try (Connection connection = dataSource.getConnection();
             Statement statement = connection.createStatement()) {
            for (String tableName : tableNames) {
                statement.executeUpdate("TRUNCATE " + tableName);
            }
            connection.commit();
        } catch (SQLException throwables) {
//            error handling...
        }
    }