Sobre JEE e tecnologias relacionadas é correto afirmar que
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
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.
Não, há também, por exemplo, Servlet Containers (Web Containers).
Não, rodam no WebContainer.
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
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo