java - Spring Hibernate 处理 500 万条记录的方法

标签 java spring hibernate

我需要处理超过 5 到 6 百万条财务记录,其中每条记录都是一项交易。

这是一个 Spring 、 Hibernate 解决方案。

我可以在下面列出四个步骤来使我的背景清晰

  1. 读取表中的每条记录。示例(工资)

  2. 只访问特定的两列(主键字段-ID),(工资-RSA加密值)

  3. 解密属于salary id的salary字段。

  4. 使用新的安全 key 再次加密。

    解决方案需要作为后台进程(可能是 spring 线程池任务执行器)系统必须 24 * 7 运行。

    每条记录都是一个事务,那么加载记录以进行处理的最佳方式是什么? 如果可能,请给我一个示例链接。

    我认为最佳做法是加载 10 条记录,然后加载下 10 条记录。如何使用 spring、hibernate 实现这样的解决方案。

最佳答案

我会忘记 Entity Framework 作为此类工作的 hibernate 状态,并坚持使用数据库方面。 (如果您在交易期间没有其他工作要做,即邮件发送、审计等...其中代码仅在服务器端可用)

创建一个存储过程来执行该作业,并在已知的低负载时间内运行一次。在 5 到 30 分钟内完成。

或者,创建一个存储过程,一次获取一行,并在(数据库)作业中延迟运行它,这样性能就不会受到影响。

关于java - Spring Hibernate 处理 500 万条记录的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23591245/

相关文章:

java - 使用服务器游标获取与流式传输之间的区别

java - Spring MVC Controller 是单例的吗?

java - 为什么此代码无法使用 Rest API 发布任何内容?

hibernate - joda.time.DateTime 与 hibernate createQuery 到 setDate

java - 使用 BLOB 或 TEXT/CLOB 在字段中保存 HTML 数据

java - 为什么 Jboss 流口水规则在计时之前就过期了

java - 如何保存函数内部所做的数组更改?

spring - Hibernate在不同的事务中初始化对象

java - 如何在 hibernate 中编写正确的查询?

mysql - Grails DetachedCriteria 使用 'where' 抛出 SyntaxErrorException