我有一个测试套件,需要为系统中的大量(但不是全部)表删除本地 MySQL 测试实例中的任何现有数据。
delete from customer;
当然,customer
它有不少外键,所以我还必须删除更多的表......
delete from customer_email;
delete from customer_phone;
再一次,这些表有更多的外键......
delete from customer_email_notification;
delete from customer_phone_call;
等等等等令人作呕。为了编写测试设置,不得不在精神上浏览整个数据模型是令人沮丧的。
我正在使用 Hibernate,所以我想知道是否有某种方法可以自动获取表的优先顺序列表,以便可以直接将其传递给删除处理程序。理想情况下:
List<String> dependentTables = foreignKeyGraph.findAll("customer");
deletionHandler.clean(dependentTables);
是否有一个 Hibernate 实用程序可以做到这一点?我打算写一些遍历我们域的注释和派生表名的东西,但是对于一个相当普遍的问题似乎需要做很多工作。谢谢!