mysql - 如何获取 hibernate 失败的事务详细信息

标签 mysql hibernate transactions rollback

我正在编写一个脚本,使用 hibernate 将记录从文件加载到 mysql 数据库中。我正在使用事务批量处理 1000 条记录,如果该记录已存在于数据库中,则插入将会失败,这实际上会使整个事务回滚。有没有办法知道回滚事务中处理的记录是什么?

此外,考虑到这种情况,是否有更好的方法来做到这一点?请注意,该脚本每天都会运行,并且不是一次性加载,该文件通常每天大约有 2.5 亿条记录。

最佳答案

您可以使用StatelessSession API 并检查ConstraintViolationException;可以丢弃失败记录,无需回滚事务。

关于mysql - 如何获取 hibernate 失败的事务详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18075856/

相关文章:

mysql - Rails `where` 时间少于查询

mysql - LEFT OUTER JOIN 在 MySql 语法中只表示为 LEFT JOIN?

MySQL JOIN 与 3 个表和 COUNT() 不工作

postgresql - Golang、postgres事务: pq: unexpected transaction status in a failed transaction

java - Spring事务和 hibernate : lazy initialization

mysql - 原子读取和条件创建或更新

多个表的 MySQL 内存使用情况

java - 减少 Hibernate 存储库中的样板代码/在桌面客户端-服务器应用程序中使用 Spring 的 JpaRepository 接口(interface)

java - Spring 和 Hibernate 5. SessionFactory 始终为 null

java - Hibernate insert with single column table 问题