- Navios
- 25 de agosto de 2026 às 15:03 UTC
- Autor
- Kamo
- Enviar
- 2be051e
reclameNextVersion é um UPDATE ... SET current version id = current version id + 1 e deve ser a PRIMEIRA declaração de uma transação de escrita. O óbvio alternativa — ler a versão atual, adicionar um, escrever — é um read- after- write dentro de uma transação, que o YugabyteDB aborta com SQLSTATE 40001 em concorrência. Ele falha intermitentemente, por isso apresenta como um impasse aleatório, e um loop de repetição parece corrigi-lo ao corrigir Nada: a repetição tem a mesma forma e ganha a corrida com mais frequência. O UPDATE também pega o bloqueio e lê em uma viagem de ida e volta, que é um menos do que substitui. findClaimedVersion lê de volta na mesma transação e é seguro apesar esse aviso, porque a UPDATE já tomou a fechadura da linha — Yugabyte problema de read- reirt é sobre linhas outra transação pode mover abaixo de você. A pesquisa de recursos devolve deliberadamente recursos DELETADOS. Um ouvinte tem que dizer "nunca existiu" (404) de "eliminado" (410 ido), e FHIR requer um recurso apagado para continuar respondendo vread e history; filtrando-os aqui Tornaria isso impossível uma camada acima. FhirResourceVersionRepository declara NÃO excluir e NÃO atualizar, e um teste impõe que nunca ganha um. A entidade recusa ambos através @PreRemove/@PreUpdate — mas esses são CALLBACKS DE ENTIDADE, e dados de primavera derivado delete compila para bulk JPQL que os ignora completamente. Tal método apagaria a história clínica silenciosamente enquanto a própria entidade A protecção nunca disparou. Não declarar uma é a proteção real, e que é uma decisão que nenhum compilador impõe. O histórico e as leituras de reprojeção são ambos paged, porque uma emenda ativamente gráfico acumula versões e uma leitura ilimitada é ilimitada exatamente onde dói mais. SharedLibBeanSafety Teste ainda passa: repositórios são interfaces, e não O feijão estereótipo foi adicionado à biblioteca. 1655 testes verdes.