我正在阅读JPA关于DECLARE @DupIDS varchar(max)='';
SELECT @DupIDS =STRING_AGG(ID,',')
FROM Product
WHERE ID NOT IN (SELECT min(ID)
FROM Product
GROUP BY Value)
Delete From Product
WHERE id in (SELECT value FROM STRING_SPLIT(@DupIDS , ','))
Delete From ProductRefTable
WHERE ProductId IN (select STRING_SPLIT(@DupIDS ,',')
的文档,其中指出:
如果锁定模式类型是悲观的,并且找到了实体实例但无法锁定:
- 如果数据库锁定失败导致事务级回滚,则会抛出
lock()
。- 如果数据库锁定失败仅导致语句级回滚,则会抛出
PessimisticLockException
。
谁决定锁定失败是导致事务级回滚还是语句级回滚?
这是数据库级设置,JPA设置还是某些规范规则,它们定义了锁定失败导致特定回滚的条件?