Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JPA/Hibernate中的批量更新和失败更新的返回Id_Hibernate_Jpa_Bulkupdate - Fatal编程技术网

JPA/Hibernate中的批量更新和失败更新的返回Id

JPA/Hibernate中的批量更新和失败更新的返回Id,hibernate,jpa,bulkupdate,Hibernate,Jpa,Bulkupdate,对于上述输入,我想用“值”:“值1”更新“id”行的“field1”“field1”列 但如果出现部分错误,我应该发回失败的id列表 如何在JPA/Hibernate批量更新中获取失败的id列表 一种方法是逐个解析列表,并对每个id逐个执行transactional更新,如果DAO调用中出现异常,则捕获异常并将此特定的id存储在部分失败列表中 但是这感觉像是一种蛮力的方式,JPA是否提供了一种更好的方式来进行批量更新并返回失败的id?为每次更新创建事务是没有效率的。因此,正如您正确地说的,您应该

对于上述输入,我想用
“值”:“值1”
更新
“id”行的
“field1”
“field1”列

但如果出现部分错误,我应该发回失败的
id
列表

如何在JPA/Hibernate批量更新中获取失败的
id
列表

一种方法是逐个解析列表,并对每个
id
逐个执行
transactional
更新,如果DAO调用中出现异常,则捕获异常并将此特定的
id
存储在部分失败列表中


但是这感觉像是一种蛮力的方式,JPA是否提供了一种更好的方式来进行批量更新并返回失败的
id

为每次更新创建事务是没有效率的。因此,正如您正确地说的,您应该使用批处理。这是一篇关于如何做的好文章。您会发现在更新/插入之前只创建了一个事务

如果整批都失败了,就有可能找到
java.sql.BatchUpdateException
为您提供了此功能

因此,我建议您使用带有
catch(BatchUpdateException)
的批更新/插入代码块,您可以将其作为后备方案单独处理。

它怎么会“失败”?通常,异常会导致将发送标记为仅回滚。
{
events:
[
{"id": "1"}
{"id": "2"}
]
attributes:
[
{
"field": "field1"
"value": "value1"
}
{
"field": "field2"
"value": "value2"
}
]
}