当前位置: 首页 > 知识库问答 >
问题:

Spring JPA(Hibernate):断言失败:“xxxx”项中的id为空(发生异常后不要刷新会话)

从光启
2023-03-14

我需要从遗留系统进行数据迁移,总共有20,000条记录[所有数据将由csv文件提供],由于一些技术原因,我必须使用JPA/Hibernate将这些数据导入到您当前使用的新系统中。

当我进行导入时,总是遇到如下交易问题:

数据库是 MS SQL Server 2005

org . hibernate . assertion failure:< code > xxxx 条目中的id为空(发生异常后不要刷新会话)

我尝试了以下方法

    < li >使用嵌套异常来导入单独的记录。 < li >将数据分割成一些小的csv文件 < li >手动调用< code > entitymanager . flush()并将< code>Thread.sleep(10000)添加到睡眠10ms < li >每20条记录调用< code > tity manager . flush 并Hibernate5毫秒

但不幸的是,似乎没有任何帮助。请帮忙。

感谢阅读。任何帮助将不胜感激!

共有1个答案

华浩壤
2023-03-14

如果映射正确,则可能是一个错误的导入代码,如 org.hibernate.AssertionFailure 中所述。
您还可以查看Hibernate批处理最佳实践和无状态会话。
最后一个选项可以移动到Spring批次

 类似资料: