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.

questionAnswers(2)

yourAnswerToTheQuestion