11.1. Unit of Work
Lista do que mudou na transação; grava tudo de uma vez no fim.
Resumo
- Mantém listas dos objetos novos, alterados (dirty) e removidos durante uma transação de negócio.
- No
commit(): abre transação, grava na ordem certa (integridade referencial), trata concorrência. - Registro: pelo chamador (registra explicitamente) ou pelo objeto (o setter se marca como sujo).
- Alternativa: controle por cópia (unit of work compara com o estado original lido).
- Evita várias idas pequenas ao banco e transações longas. Base para Optimistic Offline Lock.
Perguntas-chave
responda de cabeça, depois abraQuais listas o Unit of Work mantém?
Novos, alterados (dirty) e removidos; às vezes também os limpos lidos.
Quais as formas de registrar mudanças?
Registro pelo chamador, registro pelo próprio objeto, ou controle comparando com a cópia original.
Por que ele ajuda na integridade referencial?
Por gravar tudo no fim, pode ordenar as operações (pai antes do filho) e agrupar em lote.
Exercícios de fixação
0/5 respondidas1.
Durante um caso de uso, três objetos mudam e um é criado. Em vez de gravar a cada mudança, o sistema acumula e grava tudo no fim. Qual padrão?
2.
No registro pelo objeto, como o Unit of Work descobre que algo mudou?
3.
Por que gravar tudo no fim ajuda na integridade referencial?
4.
Qual é a desvantagem do registro pelo chamador?
5.
Qual a relação entre Unit of Work e transações do banco?