Hibernate LockModes / LockOptions
Estou passando pela documentação do Hibernate e me deparei com oLockModes
. São os mesmos queIsolation levels
que usamos para banco de dados? Como eles são diferentesIsolation levels
?
Estou tentando um exemplo simples e observei que o hibernate está atingindo o banco de dados quando uso o método session.load () em vez de acessar o banco de dados quando chamo alguns métodos no objeto carregado.
session.beginTransaction(); //Line 1
DomesticCat d1 = (DomesticCat)session.load(DomesticCat.class, 1L,LockOptions.UPGRADE); //Line 2
d1.meow(); //Line 3
session.getTransaction().commit(); //Line 4
Eu observei que o hibernate atinge o banco de dados na própria linha 2, por favor me diga por que isso acontece assim? Se eu remover o parâmetro LockOptions, a ocorrência do banco de dados será feita emLine 3
ao invés deLine 2
oAPI para LockOptions fornece muito poucos detalhes sobre o que são:
READ representa LockMode.READ (tempo limite + escopo não se aplicam)
O que significa issotimeout + scope do not apply
?
UPGRADE representa LockMode.UPGRADE (esperará para sempre pelo bloqueio e escopo de falso significado, apenas a entidade está bloqueada)
Quando devemos usar o UPGRADE? o que isso significascope of false meaning only entity is locked
?
Pode ser que estas sejam perguntas básicas para homens experientes, por favor me ajude a entender o conceito aqui.
Obrigado por olhar meu post.