首页 > 解决方案 > Hibernate / JPA 如何获取或创建(实体)并使获取返回未提交的已保存实体

问题描述

如果您正在解析包含许多行的大型csv文件,则每行包含一个Product

您希望使用 Hibernate / JPA在一个事务中填充所有文件内容。如果一个失败,那么所有失败

但是,我也试图跟踪过去是否已经创建了过去的产品。

例如,这会为重复的描述造成一个小问题。

例如,我使用 getOrCreate(text, language) 创建了一个实体 Description。如果没有找到,则创建它,否则返回找到的。

在一个 csv 文件中,似乎有多个描述与多个rows/Products匹配,并且 2+ 个产品具有相同的描述。

这意味着在同一个事务中,描述部分存在重复项。

但是,由于 Transaction尚未提交, findByLanguageAndText 将/不会返回过去保存但未提交的实体。

有没有办法保存它作为事务的一部分,或者允许 hibernate / jpa 返回先前保存的描述实体但尚未提交?

如果我提交,我可以在以后出现错误的情况下回滚吗?

我可以将这些未提交的内容存储在哈希图中,但这会产生巨大的复杂性。

解决这个问题的最佳方法是什么。

标签: javasqlhibernatejpa

解决方案


推荐阅读