Dúvida - @Lock

1 resposta
G

Seguinte,
fiz um teste sobre EJB e acabei entrando em desacordo com a resposta do professor com relação a essa afirmação:

Se decorarmos uma classe com @Singleton e @Lock(LockType.WRITE) então podemos afirmar que o controle da concorrência
é orientada ao container e, que o nível de acesso de todos os método é do tipo write.

Verdadeiro ou Falso.

Pra vocês, qual é a resposta certa? Se possivel coloquem uma justificativa da resposta.
Depois eu coloco a minha resposta e minha justificativa pra não induzir ninguem.

1 Resposta

w1lson

Verdadeiro.

A anotação @Lock(WRITE) no nível de classe determina o comportamento default de todos os métodos da classe. Porém, se você anotar qualquer método dentro desta mesma classe com @Lock(READ), então esta anotação sobrescreveria o comportamento default definido pela classe, apenas para o método específico.

Se a concorrência é gerenciada pelo container ou pelo bean, isso é determinado pela anotação javax.ejb.ConcurrencyManagement que aceita os valores ConcurrencyManagementType.CONTAINER e ConcurrencyManagementType.BEAN. Sendo que o valor padrão, caso a anotação não seja especificada é CONTAINER.

Se você não especificar a anotação @Lock em métodos ou na declaração da classe, o padrão é @Lock(WRITE).

Tenha em mente que especificando esta anotação a nível de classe, todos os métodos que não estiverem anotados terão o comportamento definido pela anotação ao nível de classe.

Criado 13 de abril de 2012
Ultima resposta 13 de abr. de 2012
Respostas 1
Participantes 2