java - 使用 Hibernate 分区

标签 java database hibernate orm partitioning

我们有一个需求,每天从数据库中删除 200K 范围内的数据。我们的应用程序基于 Java/Java EE,使用 Oracle DB 和 Hibernate ORM 工具。

我们探索了各种选择,例如

  1. hibernate 批处理
  2. 存储过程
  3. 数据库分区

我们的 DBA 建议数据库分区是最好的方法,这样我们每天都可以轻松地重新创建和删除分区表。现在的问题是我们有两种数据,一种我们想每天删除,另一种我们想保留。假设此数据存储在表“Trade”中。现在有了分区,我们有 2 个表“Trade”。我们已经有基于 Hibernate 的 DAO 层来从 DB 获取/存储交易。当我们决定对数据库进行分区时,我们如何通过hibernate控制交易到两个表中的哪一个。基本上我想要,交易需要在一天结束前删除,进入分区表和我想保留的交易,在主表中。请建议如何使用 Hibernate 实现这一点。我们可能会添加一个额外的列来标识要删除的交易,但我们如何确保这些交易应该使用 hibernate 进入分区交易表。

如果有人可以建议任何更好的方法,以防我们走错路,我将不胜感激。

最佳答案

When we decide to partition the database, how can we control the trades to go in which of the two tables through hibernate.

这就是Hibernate Shards是为了。

关于java - 使用 Hibernate 分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2736767/

相关文章:

java - <h :selectOneListbox disabled=true causing NullPointerException

java - 仅针对 3 个 fragment 中的 2 个出现 OnBackPressed() 警报框

java - 使用 Spring AOP 做方法分析(基本执行时间)

php - 使用 3 select 向先前的查询添加约束

mysql - 为什么 Hibernate 对 MySQL 数据库开放了很多端口?

hibernate - Spring4 @Scheduled @Transaction 抛出多个数据源刷新时没有事务正在进行

java - 事务内部的Spring Boot LazyInitializationException

java - UUID.randomUUID() 与 SecureRandom

python - SQL SELECT 来自变量提供的表名

database - 基于键值的数据库,有人可以向我解释如何实际使用它们吗?