【发布时间】:2011-02-23 19:18:25
【问题描述】:
在使用 Hibernate 插入数据的同时截断表可以吗?
我们将一个包含许多关系的大型 XML 文件解析为 Hibernate POJO 并持久化到数据库中。
我们现在计划通过截断表格在特定时间点清除现有数据。这样可以吗?
它似乎工作正常。我们不使用 Hibernate 的二级缓存。我确实注意到的一件事很好,那就是在插入时我们使用 Hibernate 的 @GeneratedValue 生成主键,其中 Hibernate 只使用比表中的最大值大一的键值 - 即使我们正在截断表,Hibernate记住先前的值并使用先前的值 + 1,而不是从 1 开始。这很好,只是出乎意料。
请注意,我们截断而不是在 Hibernate POJO 上调用 delete() 的原因是为了速度。我们有数以百万计的数据行,而且截断速度要快得多。
【问题讨论】:
标签: java oracle hibernate truncate purge