gpt4 book ai didi

具有约束违反异常的 hibernate 批量更新

转载 作者:行者123 更新时间:2023-12-03 08:23:49 25 4
gpt4 key购买 nike

我正在批量更新大量对象并希望忽略任何重复项。
这样做的最佳方法是什么?

我的理解是,如果 ConstrainViolationException批次中的所有其他对象将被抛出 不是 被坚持。

最佳答案

这是我的解决方案:

    private void saveBatch() {
StatelessSession session = sessionFactory.openStatelessSession();
Transaction tx = session.beginTransaction();

try {
for (Object t : batchList) {
session.insert(t);
}
tx.commit();
} catch (ConstraintViolationException e) {

log.info("Duplicate in batch...save individually");
tx.rollback();
session.close();
saveIndividually();
return;
}

session.close();
batchList.clear();
}

private void saveIndividually() {
StatelessSession session = sessionFactory.openStatelessSession();
for (Object t : batchList) {
Transaction tx = session.beginTransaction();
session.insert(t);
try {
tx.commit();
} catch (ConstraintViolationException e) {
tx.rollback();
log.warn("Ignoring duplicate: " + t);
}

}

session.close();
batchList.clear();
}

关于具有约束违反异常的 hibernate 批量更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8138559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com