我正在编写一个脚本,使用 hibernate 将记录从文件加载到 mysql 数据库中。我正在使用事务批量处理 1000 条记录,如果该记录已存在于数据库中,则插入将会失败,这实际上会使整个事务回滚。有没有办法知道回滚事务中处理的记录是什么?
此外,考虑到这种情况,是否有更好的方法来做到这一点?请注意,该脚本每天都会运行,并且不是一次性加载,该文件通常每天大约有 2.5 亿条记录。
最佳答案
您可以使用StatelessSession
API 并检查ConstraintViolationException
;可以丢弃失败记录,无需回滚事务。
关于mysql - 如何获取 hibernate 失败的事务详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18075856/