【发布时间】:2020-08-04 13:38:34
【问题描述】:
我有一个对象集合 (id-type1-type2),如果它们不存在,我必须将它们保存在数据库中。
type1-type2 组合在数据库中必须是 UNIQUE (数据库中针对此组合存在唯一约束)。我的问题是:如何在我的集合中保存数据(可以是数千个对象)而不会出现 SQL 异常(由于唯一约束)而不在保存之前检查集合中的每条记录是否存在于数据库中?这甚至可能吗?
我是否必须迭代集合,检查每条记录的存在(每次检查一个数据库调用),然后保存所有不存在的记录? 有没有更好的方法来减少往返行程?也许我可以获取所有记录,用我的集合(两个集合中都存在的那些)过滤它们,然后只保留新的。在这种情况下,我进行了 2 个数据库调用。但是,在这种情况下,我担心内存。
我正在使用 Java 和 Spring,但这是一个普遍的问题。 提前致谢。
【问题讨论】:
标签: java mysql spring database persistence