Pessoal estou com algumas questoes p resolver, vcs poderiam me ajudar?
Questão 1) Qual a condição que uma classe usando a anotação @Embeddable deve satisfazer?
( ) Definir dois ou mais construtores.
( ) Sobrescrever o método toString().
( ) Definir pelo menos um campo com anotação @Id.
( ) Implementar Serializable.
Questão 10) Qual dos parâmetros abaixo não é usado para a anotação @GeneratedValue? (Ref.: 202214430197)
( ) generatorType
( ) generatorType, generator e strategy definem um parâmetro
( ) strategy
( ) generator
Deve possuir um constructor com zero parâmetros — os chamados no-arg constructors — E ele deve ter o modificador de acesso public ou protected. (A classe pode ter constructors adicionais também)
A classe deve ser uma top-level class. Isto quer dizer que a classe não pode ser declarada dentro do corpo de uma outra classe.
Não pode ser um enum e nem uma interface, tem que ser uma classe comum mesmo
Nem a classe e nem seus membros, sejam métodos ou campos persistentes, devem ser declarados como final.
Devem ser anotadas com @Embeddable ou denotadas no XML.
Ou seja: Nenhuma das 4 opções que a questão apresenta é uma condição que uma @Embeddable deva satisfazer.
“Definir dois ou mais construtores”: O único constructor obrigatório é o no-arg constructor.
“Sobrescrever o método toString()”: não é obrigatório.
“Definir pelo menos um campo com anotação @Id”: Não pode ter campos com esta anotação.
“Implementar Serializable”: Não é um requerimento.
Que diz o seguinte: “The primary key class must be serializable”.
E eu já vi gente argumentando que isto significa que a classe @Embeddable usada como @EmbeddedId deve ser @Serializable, mas eu acho que isto não é verdade porque uma “primary key class” representa uma primary key comum.
Já primary keys que usam @EmbeddedId são chamadas de “composite primary key”.
Eu testei usando Hibernate 6 e a @Embeddable, tanto usada com @Embedded como com @EmbeddedId, não exigiu @Serializable mesmo.
Podemos usar classes anotadas com @Embeddable como composite primary key. Classes que são usadas desta forma são chamadas de primary key classes.
As Primary key classes tem requerimentos adicionais e alguns deles são:
Devem ser serializaveis
Devem definir equals e hashCode
Então, este trecho que vc postou está certinho.
Com base nisso, voltando para a questão 1, dos 4 itens apresentados, acredito que o único que deve ser satisfeito é o quarto (implementar Serializable).
Só tenho mais uma observação: O trecho que vc postou me deu a entender que @Embeddable é sinônimo de “chave composta”. Só por este trecho não dá para ter certeza de que essa foi a intenção do autor, mas, de qualquer forma, é importante destacar que nem toda classe anotada com @Embeddable é usada como chave composta.
Me desculpe pela minha resposta anterior, pois eu acho que ela pode ter te confundido mais. Quando eu a escrevi, não tinha percebido que as @Embeddable usadas como chave composta possuiam requisitos adicionais.
4 - A anotação @JoinTable deve ser usada em conjunto com:
( )@ ManuToOne
( )@ ManuToMany
( )@ OneToOne
( )@ OneToMany
5 - Dado o código cujas linhas estão numeradas:
O código trata de uma inclusão no banco de dados. O que deve ser feito para que ele se torne uma alteração?
( )Devemos substituir a linha 4.
( )Devemos elimitar a linha 1.
( )Devemos incluir uma instrução após a linha 9
( )Devemos remover a linha 8.
6 - O que faz o método refresh() de EntityManager?
( )Remove os atributos da entidade.
( )Reinicia os atributos da entidade.
( )Inclui novos atributos na entidade.
( )Atualiza os atributos da entidade.
7 - O que é necessário para a execução do método update?
( )A entidade deve pertencer a uma classe com construtor padrão.
( )A entidade deve estar no estado persistente.
( )A entidade deve ter sido instanciada recentemente
( )A entidade deve estar no estado
Uma das vantagens da utilização do Hibernate é:
( )O acesso ao banco de dados é realizado sem uma string de conexão.
( )O uso de classes como entidades.
( )O uso de tabelas como entidades.
( )Não é necessário criar o banco de dados.
9 - O que faz a instrução abaixo?
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
( )Cria um objeto Transaction.
( )Lê os arquivos de script do banco de dados.
( )Lê os arquivos de configuração e mapeamento.
( )Cria uma nova sessão.
10 -Qual dos tipos abaixo é usado para realizar tarefas de inicialização do Hibernate?