java - Hibernate / JPA 如何获取或创建(实体)并使获取返回未提交的已保存实体
问题描述
如果您正在解析包含许多行的大型csv文件,则每行包含一个Product。
您希望使用 Hibernate / JPA在一个事务中填充所有文件内容。如果一个失败,那么所有失败。
但是,我也试图跟踪过去是否已经创建了过去的产品。
例如,这会为重复的描述造成一个小问题。
例如,我使用 getOrCreate(text, language) 创建了一个实体 Description。如果没有找到,则创建它,否则返回找到的。
在一个 csv 文件中,似乎有多个描述与多个rows/Products匹配,并且 2+ 个产品具有相同的描述。
这意味着在同一个事务中,描述部分存在重复项。
但是,由于 Transaction尚未提交, findByLanguageAndText 将/不会返回过去保存但未提交的实体。
有没有办法保存它作为事务的一部分,或者允许 hibernate / jpa 返回先前保存的描述实体但尚未提交?
如果我提交,我可以在以后出现错误的情况下回滚吗?
我可以将这些未提交的内容存储在哈希图中,但这会产生巨大的复杂性。
解决这个问题的最佳方法是什么。
解决方案
推荐阅读
- angular - Angular 中的路由问题 [错误 - 未捕获(承诺中):错误:无法匹配任何路由]
- javascript - 访问由 javascript 函数创建的输入值
- php - 将带有 ajax 的表单发布给自己,无需重新加载并过滤回具有相关业务名称的表单数据
- excel - 如何将一个单元格的值限制为另一个单元格的值?
- azure-devops - Azure Devops - 构建自动化
- python - Django:从查询集字典中获取一个键和值
- text-to-speech - 如何在谷歌文本到语音中使用语音或音素发音?
- ibm-midrange - IBM i 用的是 PASE
- excel - 如何以编程方式删除丢失的引用?
- c++ - 尝试读取与其中的某些值匹配的一行二维向量