Questão nº 56
Questão de Tecnologia da Informação · FCC TRT20 2024 (nº 56)
FCC2024Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Aver comentário ↓
Usando JPA 2.0, um Técnico utilizou a anotação `@MappedSuperclass` que é útil para mapear uma classe de entidade
- Aabstrata que não será diretamente persistida no banco de dados. (alternativa correta)
- Bque será persistida em uma tabela única com outras entidades.
- Cque será persistida em uma tabela separada.
- Dconcreta persistida diretamente no banco de dados.
- Eque será persistida em uma tabela de junção.
Resposta comentada
Gabarito Alternativa A
A anotação @MappedSuperclass é usada para criar uma classe base que contém campos e métodos comuns, mas que não é uma entidade e, portanto, não é mapeada para uma tabela no banco de dados por si só. Suas propriedades são herdadas e mapeadas pelas classes filhas que são entidades.
- (A) Correta: Uma
@MappedSuperclassé uma classe que serve como base para outras entidades, contendo atributos que serão herdados e mapeados para o banco de dados pelas classes filhas. Ela própria não é uma entidade e, por isso, não é persistida diretamente em uma tabela. Ela pode ser abstrata (e geralmente é, por boa prática), mas não é um requisito estrito da JPA. - (B) Incorreta: Esta alternativa descreve a estratégia de herança
SINGLE_TABLE(@Inheritance(strategy = InheritanceType.SINGLE_TABLE)), onde uma hierarquia de entidades (incluindo a superclasse que é uma entidade) é persistida em uma única tabela. Uma@MappedSuperclassnão é uma entidade e não participa diretamente de uma estratégia de herança de entidades nesse sentido. Armadilha: A armadilha aqui é confundir a herança de atributos de uma@MappedSuperclasscom as estratégias de herança de entidades, que envolvem classes que são entidades e são persistidas. - (C) Incorreta: Esta alternativa descreve a estratégia de herança
JOINED(@Inheritance(strategy = InheritanceType.JOINED)), onde cada entidade na hierarquia (incluindo a superclasse que é uma entidade) é persistida em uma tabela separada, com chaves estrangeiras para ligar as tabelas. Novamente, uma@MappedSuperclassnão é uma entidade e não tem sua própria tabela. - (D) Incorreta: Uma
@MappedSuperclassnão é persistida diretamente no banco de dados. A persistência ocorre apenas para as classes filhas que a estendem e que são@Entity. Além disso, embora possa ser concreta, é mais comum e recomendado que seja abstrata. - (E) Incorreta: Uma tabela de junção (ou associação) é usada principalmente para mapear relacionamentos muitos-para-muitos (
@ManyToMany) entre entidades, ou para mapear coleções de elementos. Não tem relação com o propósito de uma@MappedSuperclass.
Fonte: FCC TRT20 2024 Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 004). Reproduzida para fins de estudo.