[Exercícios] Java Persistence API #1

Teste seus conhecimentos sobre o Java Persistence API



Exercício 1
Qual é a diferença entre JPA e Hibernate?
a)              Hibernate é especificação e JPA a implementação
b)              Ambos implementações de um ORM
c)               Ambos especificações de um ORM
d)              JPA é especificação e Hibernate a implementação

Exercício 2
As anotações @Entity@Id e @GeneratedValue servem, respectivamente, para:
a)              Associar uma classe a uma tabela, indicar a chave primária no banco e permitir que o banco gere automaticamente a chave, de maneira obrigatória.
b)              Associar uma classe a uma tabela, indicar chave primária no banco e permitir o desenvolvedor se encarregue pela geração da chave.
c)               Associar uma classe a uma tabela, indicar chave primária no banco e permitir que o banco gere automaticamente a chave, de maneira opcional.

Exercício 03
Dado o trecho de código abaixo, diga: Qual é o estado da entidade Aluno neste momento?
Aluno aluno = new Aluno();
aluno.setId(3);     // Conta com Id 3 já foi persistida anteriormente.
aluno.setNome("João Pedro");
aluno.setEndereco("Rua ….");

a)              Managed (Gerenciado)
b)              Transient (Transiente)
c)               New (Novo)
d)              Removed (Removido)
e)              Detached (Desatachado)


Exercício 04
Veja o código abaixo:
EntityManager manager = new JPAUtil().getEntityManager();

Conta conta = new Conta();
conta.setId(1);

Query query = manager
                .createQuery("select m from Movimentacao m where m.conta=:pConta"
                        + " and m.tipoMovimentacao=:pTipo");

query.setParameter("pConta", conta);
query.setParameter("pTipo", TipoMovimentacao.ENTRADA);

List<Movimentacao> movimentacoes = query.getResultList();
manager.close()
Assumindo que tudo é compilado e executado corretamente, qual das afirmações abaixo é verdadeira?
a)              A query busca todas as movimentações.
b)              A query busca todas as movimentações de entrada da conta 1.
c)               A query busca todas as movimentações sendo de entrada ou da conta 1.
d)              A query busca a primeira movimentação de entrada.


Exercício 05
Apesar de termos utilizado anotações para realizarmos o mapeamento entre classes e tabelas, algumas configurações se fazem necessárias no persistence.xml. Uma configuração muito importante é a "unidade de persistência", qual é a finalidade dessa configuração?
a)      Guardar as mensagens dos erros de validação
b)      Definir a chave primeiro como auto increment
c) Guardar configurações específicas para um banco de dados
d) Configurar o mapeamento de relacionamentos

Exercício 06
Dentro do ciclo de vida de um objeto na JPA, qual estado garante que todas as modificações feitas no objeto serão sincronizadas com o banco de dados?
a)              Removed (Removido)
b)              Transient (Transiente)
c)               New (Novo)
d)              Detached (Desatachado)
e)              Managed (Gerenciado)

Exercício 07
Observe o relacionamento bidirecional abaixo:
@Entity
public class Aluno {

    @OneToOne
    private Perfil perfil;
}
@Entity
public class Perfil {

    @OneToOne(mappedBy="perfil")
    private Aluno aluno;
}

Qual é o lado forte?
a)              O atributo perfil na classe Aluno.
b)              Não há lado forte.
c)               O atributo aluno na classe Perfil.
Exercício 08
Como se chama o método da interface javax.persistence.Query que devolve um único valor?
a)              getSingleResult()
b)              getUniqueResult()
c)               value()
d)              uniqueValue()
e)              getOneResult()

Exercício 09
Qual das afirmações abaixo NÃO é verdadeira?
a)              Relacionamentos LAZY, ao ser inicializados, precisam do EntityManager aberto.
b)              Relacionamentos para-muitos (*ToMany) são LAZY por padrão.
c)               Relacionamentos LAZY não podem ser carregados antecipadamente, nem pelo JPQL.
d)              Relacionamentos LAZY serão inicializados sob demanda (ao acessar).

Exercício 10
O método find() e o getReference() da interface EntityManager permitem que:
a)              Encontre a relação entre o id passado e os objetos Transient da sessão com o banco.
b)              Recuperemos o endereço de memória de um objeto através do seu id.
c)               Recuperemos uma instância de uma entidade no banco de dados através do seu id.
d)              Busquemos entre os objetos em memória, quais já foram persistidos.




Gabarito:
1 - a
2 - c
3 - e
4 - b
5 - c
6 - e
7 - a
8 - a
9 - c
10 - c
[Exercícios] Java Persistence API #1 [Exercícios] Java Persistence API #1 Reviewed by Vinicius dos Santos on 09:24:00 Rating: 5

Nenhum comentário

Escreve ai sua opinião!