【发布时间】:2015-08-14 16:50:11
【问题描述】:
我正在为 ldap 使用 spring 的补偿事务管理器。我正在使用DefaultTempEntryRenamingStrategy。
它通过将实体(因此为 dn )重命名为 <original_name>_temp 来进行就地软删除,然后在提交牵引力时,如果成功则实际去删除,否则回滚。问题是它无法对所有子树节点进行递归删除。
原因: 当它进行软删除时,它实际上是在修改对象的 dn。和路径现在改变了。但是当它实际上要递归删除叶子节点时,它不是使用更新的 Dn,而是使用旧的 Dn。
它正在搜索:剩余名称*'cn=1157718410FB13@example.com_temp,ou=People,o=122C91C0C62A83,o=Customers'*
但实际上应该是搜索*'cn=1157718410FB13@example.com_temp,ou=People,o=122C91C0C62A83**_temp**,o=Customers’*
我不确定是否需要进行一些配置才能进行递归删除,否则这是一个错误。欢迎任何建议我尚未探索其他策略,即 DifferentSubtreeTempEntryRenamingStrategy。
【问题讨论】:
标签: java spring ldap spring-transactions spring-ldap