[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 - d
2 - c
3 - e
4 - b
5 - c
6 - e
7 - a
8 - a
9 - c
10 - c
Post a Comment