Sobre JEE e tecnologias relacionadas é correto afirmar que

Próximas questões
Com base no mesmo assunto
Q215395 Programação
Sobre JEE e tecnologias relacionadas é correto afirmar que
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a B - O EntityManager é o serviço central do JPA para todas as ações de persistência e oferece todas as funcionalidades de um DAO genérico.

Para compreender essa questão, é importante ter um bom entendimento sobre Java Enterprise Edition (JEE) e suas especificações, principalmente sobre o Java Persistence API (JPA) e Enterprise JavaBeans (EJB). O EntityManager é uma interface central na JPA que gerencia o ciclo de vida das entidades, que são classes Java leves que representam as tabelas do banco de dados. Ele é responsável por criar e remover entidades, realizar consultas e atualizar o banco de dados.

O EntityManager é parte da JPA, que é uma especificação para persistência e mapeamento objeto-relacional em aplicações Java. Por isso, a alternativa B está correta, já que ela aponta o EntityManager como o núcleo para a realização de operações de persistência, atuando como um Data Access Object (DAO) genérico, abstraindo o acesso aos dados e a lógica de persistência do desenvolvedor.

As demais alternativas são incorretas por vários motivos. A alternativa A é incorreta porque EntityManager não é uma classe, mas sim uma interface, e a anotação @Entity é usada para marcar classes que representam entidades em JPA, não o EntityManager. A alternativa C é incorreta porque um servidor Java EE possui mais de um contêiner, como o contêiner web e o contêiner EJB. A alternativa D está errada porque Servlets e JSP rodam no contêiner web, não no contêiner EJB. Por fim, a alternativa E, embora correta em afirmar que um arquivo persistence.xml pode definir uma única unidade de persistência, não é tão completa quanto a alternativa B que explica o papel central do EntityManager dentro da JPA.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

 a) O EntityManager é uma classe identificada com a anotação @Entity que representa o modelo das tabelas do banco de dados.

EntityManager é o serviço central para todas as ações de persistência. @Entity identifica uma tabela no modelo O/R. O EntityManager é configurado pelo persitence.xml.

b) O EntityManager é o serviço central do JPA para todas as ações de persistência e oferece todas as funcionalidades de um DAO genérico.

Ok.  Também provê APIs para criar consultas, buscando objetos, sincronizando objetos, e inserindo objetos no banco de dados. Também pode prover caching e pode administrar a interação entre uma entidade e serviços transacionais em um ambiente Java EE como JTA.
 
 c) Um servidor de aplicações Java EE possui um único contêiner conhecido como contêiner EJB.

Não, há também, por exemplo, Servlet Containers (Web Containers).
 
 d) Serlvets e JSP rodam no contêiner EJB do servidor de aplicação JEE.

Não, rodam no WebContainer.
 
 e) Em aplicações que utilizam EJB com JPA, um arquivo persistence.xml pode definir uma única unidade de persistência.

Um EntityManager mapea um conjunto de classes a um banco de dados particular: esse conjunto de classes é chamado de persistence unit (unidade de persistência): é uma configuração nomeada de classes de entidade.
Da documentação do JBOSS: "Since you might have multiple instances of persistence-unit defined in the same application, you typically need to explicitly tell the @PersistenceContext annotation which unit you want to inject. For instance, @PersistenceContext(name="myapp") injects the EntityManager from the persistence-unit named "myapp". However, if you deploy your EAR application in its own scoped classloader and have only one persistence-unit defined in the whole application, you can omit the "name" on @PersistenceContext. "

Fontes:
http://docs.jboss.org/jbossas/docs/Server_Configuration_Guide/4/html/ch01s02s01.html
http://www.devmedia.com.br/introducao-ao-entitymanager/5206


[]'s
Complementando o que disse o amigo Asdrubal na letra E. O arquivo persistence.xml é onde ficam os grupos de classes utilizadas por cada conexão de banco específica. Cada conjunto de classes recebe o nome de unidade de persistência ou persistence unit. Sendo assim, não vejo como o persistence.xml não pode definir uma única unidade de persistência, caso eu tenha apenas uma única conexão com o banco no meu contexto da apalicação...

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo