Questão nº 23
Questão de Conhecimentos Específicos · FCC TRF4 2025 (nº 23)
O JPA é uma especificação da plataforma Java que define um padrão para mapeamento objeto-relacional (ORM) e gerenciamento de persistência de dados. No JPA, a forma padrão de realizar o mapeamento de objetos Java (POJOs) para tabelas de bancos de dados relacionais é por meio de
- Aconfigurações XML como `persistence.xml`, `entity.xml` e `mapping.xml`.
- Banotações como `@Entity`, `@Id`, `@Table` e `@Column`. (alternativa correta)
- Cinterfaces como `EntityFactory`, `QueryBuilder` e `PersistenceUnit`.
- Dclasses como `HibernateSession`, `EntityManagerFactory` e `DataMapper`.
- Eanotações como `@Database`, `@Primary`, `@Relation` e `@Field`.
Resposta comentada
Gabarito Alternativa B
O JPA (Java Persistence API) é um conjunto de regras para conectar seus objetos Java (como uma classe Produto) a tabelas de um banco de dados (como a tabela PRODUTOS), permitindo que você salve, leia, atualize e apague dados de forma mais fácil.
- (A) Incorreta: Embora arquivos XML como
persistence.xmlsejam usados para configurar a unidade de persistência (onde e como o JPA vai se conectar ao banco), eorm.xmlpossa ser usado para mapeamento (inclusive para sobrescrever anotações), a forma padrão e mais comum para mapear os objetos Java diretamente para as tabelas é através de anotações. A armadilha aqui é que XML pode ser usado, mas não é a forma padrão de mapeamento direto nos POJOs. - (B) Correta: A forma padrão e mais utilizada para mapear objetos Java (POJOs) para tabelas de bancos de dados relacionais no JPA é por meio de anotações. Anotações como
@Entity(para marcar uma classe como uma entidade persistente),@Id(para indicar a chave primária),@Table(para especificar o nome da tabela) e@Column(para mapear campos para colunas) são colocadas diretamente nas classes e atributos Java para definir esse mapeamento. - (C) Incorreta:
EntityFactory(o correto seriaEntityManagerFactory),QueryBuilderePersistenceUnitsão conceitos e interfaces importantes do JPA, mas eles são usados para gerenciar o ciclo de vida das entidades, construir consultas e configurar o ambiente de persistência, não para realizar o mapeamento direto dos objetos para as tabelas. - (D) Incorreta:
HibernateSessioné uma classe específica da implementação Hibernate (que é uma das implementações do JPA, mas não o JPA em si).EntityManagerFactoryé do JPA, mas, como explicado, não é para mapeamento.DataMapperé um padrão de design geral, não uma classe específica do JPA para mapeamento. - (E) Incorreta: As anotações
@Database,@Primary,@Relatione@Fieldnão são anotações padrão do JPA. Embora soem semelhantes, as anotações corretas para essas finalidades no JPA são@Table,@Id,@OneToMany/@ManyToOne/etc. (para relações) e@Column.
Fonte: FCC TRF4 2025 Analista Judiciário - Área Apoio Especializado - Especialidade Análise de Sistemas de Informação (Caderno Tipo 001). Reproduzida para fins de estudo.