← Questões de Programação

Programação · FGV · 2023

Questão comentada de Programação

O controle de transações nos Enterprise Java Beans pode ser efetuado de forma simples, com base na Java Transaction API, por meio de anotações sobre os métodos e controle via contêiner. Com relação ao escopo da transação, especificado pela anotação TransactionAttribute, é correto afirmar que o tipo:

Gabarito: E

No EJB, a anotacao TransactionAttribute serve para dizer ao contêiner como o método deve se comportar em relação à transação. Em vez de você abrir e fechar transação na mão, o contêiner assume essa parte e aplica a regra escolhida, o que deixa o código mais limpo e previsível. A alternativa certa é a que descreve o comportamento de Supports: o método participa da transação do cliente se ela já existir, mas não cria uma nova por conta própria. Se não houver transação em andamento, o método simplesmente executa sem transação. É o clássico "se tiver, eu acompanho; se não tiver, eu sigo o baile". Isso bate com o que a especificação do EJB define para os atributos transacionais da anotação TransactionAttribute. Em termos práticos, Supports é um comportamento flexível, enquanto outros atributos são mais rígidos, como Required, RequiresNew, Mandatory, NotSupported e Never. Por isso o gabarito é a letra E: ela traduz corretamente a ideia de usar a transação do cliente, caso exista, sem iniciar uma transação nova para a execução do método.

Continue treinando

Questões relacionadas