访问者模式对树进行递归查找
fun <T, ID> CrudRepository<T, ID>.visit(start: ID?, visitor: (T) -> Boolean) where T: TreeNode<ID> {
var currentId = start
do {
val node = findByIdOrNull(currentId!!)
if (node != null) {
if (!visitor(node)) {
break
}
}
currentId = node?.getParentId()
} while (node != null && !node.isRoot())
}
浙公网安备 33010602011771号