Lista de Exercícios de Projeto e Implementação Orientado a Objeto – Lista 7
Questão 1
Embora certas anotações não sejam necessárias, elas ajudam ao compilador informar ao programador caso exista alguma inconsistência. Qual são respectivamente as anotações que informam que a anotação será utilizada pelo javadoc ou tools similares e avisa os usuários que se utilizem da classe, método ou atributo anotado que o uso do objeto não é mais recomendado?
a) @Documented e @Deprecated
b) @Documented e @Inherited
c) @ Deprecated e @ Inherited
d) @Target e @ @Retention
e) @ Retention e @ Target
Questão 2
Dado o código abaixo, o que será exibido?
a) Executando…Oswaldo
b) Executando…Gisele
c) Executando…Giovanna e Giulianna
d) Gisele
e) Oswaldo
Questão 3
Dado o código abaixo, o que será exibido?
a) Calculando…789 – Giovanna e Giulianna
b) 123 – Oswaldo
c) Calculando…456 – Gisele
d) Calculando…123 – Oswaldo
e) Erro
Questão 4
(TJ-PE/2011)Quando se utiliza JPA, um EntityManager mapeia um conjunto de classes a um banco de dados particular. Este conjunto de classes, definido em um arquivo chamado persistence.xml, é denominado:
a) Persistence context
b) Persistence unit
c) Entity manager factory
d) Entity transaction.
e) Persistence provider
Questão 5
(TJ-PE/2011) Em uma classe de entidade de uma aplicação que utiliza JPA, a anotação que define um atributo que não será salvo no banco de dados é a
a) @Optional
b) @Transient
c) @Stateless
d) @Stateful
e) @Local
Questão 6
(TCE-PR/2011) A JPA:
a) Pode ser usada fora de componentes EJB e fora da plataforma Java EE, em aplicações Java SE.
b) Utiliza persistência gerenciada por contêiner (CMP), ou seja, as classes de entidade e persistência necessitam de um contêiner presente em um servidor de aplicações para serem executadas.
c) Utiliza descritores XML para especificar informações do mapeamento relacional de objeto, mas não oferece suporte a anotações
d) Suporta consultas dinâmicas nomeadas nas classes de entidade que são acessadas apenas por instruções SQL nativas.
e) Possui uma interface entitybeans que padroniza operações Create Read Update Delete (CRUD) que envolvem tabelas.
Questão 7
Assinale a afirmativa correta no que tange a Annotations:
a) São uma forma especial de declaração de metadados que podem ser adicionadas ao código-fonte pelo programador.
b) Provêem informações sobre o comportamento de um programa.
c) São aplicáveis à classes, métodos, atributos e outros elementos de um programa.
d) Pode instruir ao compilador quanto a detecção de erros e supressão de warnings.
e) Não define mapeamento entre o objeto java e o banco de dados utilizando ORM.
Questão 8
(TJ-PE/2011) Sobre JEE e tecnologias relacionadas é correto afirmar que:
a) O EntityManager é uma classe identificada com a anotação @Entity que representa o modelo das tabelas do banco de dados.
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.
c) Um servidor de aplicações Java EE possui um único contêiner conhecido como contêiner EJB.
d) Serlvets e JSP rodam no contêiner EJB do servidor de aplicação JEE.
e) Em aplicações que utilizam EJB com JPA, um arquivo persistence.xml pode definir uma única unidade de persistência.
Questão 9
(UFRN/2014) Sobre o EntityManager, afirmar-se que:
I. é o principal serviço do framework Spring.
II. oferece funcionalidades de um DAO genérico.
III. tem a responsabilidade de gerenciar o ciclo de vida dos EJBs.
IV. representa o serviço central do JPA para todas as ações de persistência.
Estão corretas as afirmativas?
a) II e IV.
b) I e II.
c) III e IV.
d) I e III.
Questão 10
(TRT – 19ª Região/2011) Os estados do ciclo de vida de uma instância de uma entidade, definidos na JPA 2.0, são:
a) Novo (new), gerenciado (managed), destacado (detached) e removido (removed).
b) ativo (active), inativo (inactive) e removido (removed).
c) Novo (new), temporário (temporary), permanente (permanent) e destacado (detached).
d) Novo (new), temporário (temporary) e destacado (detached).
e) Gerenciado (managed), temporário (temporary), permanente (permanent) e destacado (detached).
RESPOSTAS
Questão 1 – A
Justificativa: • @Documented -> indica que os tipos anotação anotados com ela serão incluídos na documentação Javadoc;
- @Deprecated -> indica que o método está obsoleto.
Questão 2 – B
Justificativa: • String nome(), indica que a a anotação @Anotacao possui o membro nome do tipo String.
- O método main() chama os métodos executar() e exibir();
- Observe as linhas abaixo referentes ao método exibir():
Method m = c.getMethod(“executar”);
Anotacao aux = m.getAnnotation(Anotacao.class);
Como pode observar na linha Anotacao aux = m.getAnnotation(Anotacao.class), a anotação é a referente ao método:
@Anotacao(nome = “Gisele”)
public static void executar() { System.out.print(“Executando…”);}
Questão 3 – D
Justificativa: • String matricula() e String nome() . Indicam que a a anotação @AlunoAnotacao possui os membros matricula e nome do tipo String.
- O método main() chama os métodos calcular() e exibir();
- Observe as linhas abaixo referentes ao método exibir():
Class c = test.getClass();
AlunoAnotacao Aluno
= (AlunoAnotacao) c.getAnnotation(AlunoAnotacao.class);
Como pode observar na linha
AlunoAnotacao Aluno = (AlunoAnotacao) c.getAnnotation(AlunoAnotacao.class), a anotação é a referente a classe:
@AlunoAnotacao(matricula = “123”, nome = “Oswaldo”)
public class Teste {
Questão 4 – B
Justificativa: Para configurar o JPA em uma aplicação, devemos criar um arquivo chamado persistence.xml. A persistence-unit é criada dentro do persistence.xml. O conteúdo contém informações sobre o banco de dados, como a url de conexão, usuário e senha, além de dados sobre a implementação JPA que será utilizada.
Questão 5 – B
Justificativa: A anotação @Transient é empregada para campos que não precisam ser armazenados na base de dados. Essa anotação não tem qualquer atributo. Sua utilização é bem simples bastando apenas adicionar a anotação na variável de instância ou no método getter apropriado.
Questão 6 – A
Justificativa: Analisando as opções:
- utiliza persistência gerenciada por contêiner (CMP), ou seja, as classes de entidade e persistência necessitam de um contêiner presente em um servidor de aplicações para serem executadas. -> Errada. O JPA independe de um servidor de aplicação. Inclusive podemos executar em um ambiente Java SE.
- utiliza descritores XML para especificar informações do mapeamento relacional de objeto, mas não oferece suporte a anotações. -> Errada. O JPA oferece suporte anotações como, por exemple, @Table, @Entity, etc.
- suporta consultas dinâmicas nomeadas nas classes de entidade que são acessadas apenas por instruções SQL nativas. -> Errada. Não é necessario acessar através de SQL nativas. Isto inclusive é uma grande vantagem do JPA.
- possui uma interface EntityBeans que padroniza operações Create Read Update Delete (CRUD) que envolvem tabelas. -> Errada. É através do EntityManager que efetuamos o CRUD.
Questão 7 – E
Justificativa: A Java Persistence API(JPA), além de oferecer diversas funcionalidades essenciais em qualquer aplicação corporativa., é um framework para Mapeamento Objeto-Relacional (ORM – Object-Relational Mapping). O JPA permite mapear os relacionamentos entre as classes e tabelas. Exemplos:
@OneToOne, @OneToMany, @ManyToOne
Questão 8 – B
Justificativa: • O EntityManager é uma classe identificada com a anotação @Entity que representa o modelo das tabelas do banco de dados. -> Errada. define uma entidade como persistente.
- Um servidor de aplicações Java EE possui um único contêiner conhecido como contêiner EJB. . -> Errada. Possui também um contêiner Web, onde roda os Servlets e JSPs.
- Serlvets e JSP rodam no contêiner EJB do servidor de aplicação JEE. -> Errada. Rodam no contêiner Web.
- Em aplicações que utilizam EJB com JPA, um arquivo persistence.xml pode definir uma única unidade de persistência. -> Errada. arquivo de persistence.xml pode definir um ou mais unidades de persistência.
Questão 9 – A
Justificativa: • É o principal serviço do framework Spring. –Errada -> O EntityManager é o serviço central do JPA.
- Tem a responsabilidade de gerenciar o ciclo de vida dos EJBs. -> Errada. EntityManagerdo JPA é responsável pelas ações de persistência e oferece todas as funcionalidades de um DAO genérico.
Questão 10 – A
Justificativa: • Novo (new) -> A entidade não possui um ID. Objetos são conhecidos como transientes.
- Gerenciado (managed) -> A entidade possui um ID. JPA garante que esse objeto será atualizado no banco de dados.
- Destacado (detached) -> São entidades que já foram gerenciadas(managed), mas que no momento não estão.
- Removido (removed) -> São entidades que serão excluidos.
Material retirado da Web.
Se você tiver alguma dúvida ou correção a fazer, por favor, comente! Obrigado!