Pular para o conteúdo principal

Questão de Programação — Frameworks Java — FCC 2022

ProgramaçãoFrameworks Java
Código
fc064881
Banca
FCC
Órgão
TRT - 19ª Região (AL)
Ano
2022
Cargo
Analista Judiciário - Área Apoio Especializado Especialidade: Tecnologia da Informação
Considere a classe abaixo em uma aplicação que utiliza JPA e Hibernate.

@Entity
public class Cliente {
@Id
@GeneratedValue(strategy = GenerationType. I )
private Long id;
// atributos e métodos restantes
}

Para informar ao provedor de persistência que os valores a serem atribuídos ao identificador único (id) serão gerados pela coluna de autoincremento da tabela do banco de dados, utiliza-se, na lacuna I, o valor
  1. ATABLE
  2. BAUTO_GENERATED
  3. CAUTO_INCREMENT
  4. DIDENTITY
  5. ESELF_GENERATED
Revelar gabarito e comentário

GabaritoD — IDENTITY

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

JPA — Geração de chave primária com @GeneratedValue

Gabarito: letra D. A estratégia IDENTITY, do enum GenerationType, informa ao provedor JPA que os valores do identificador serão gerados pela coluna de autoincremento do banco de dados, sendo a escolha correta para preencher a lacuna I na anotação @GeneratedValue(strategy = GenerationType.IDENTITY).

A banca cobra o conhecimento dos valores do enum GenerationType da especificação JPA. Existem quatro estratégias: TABLE, SEQUENCE, IDENTITY e AUTO. Cada uma define como o valor da chave primária é gerado. A questão pede especificamente a que usa autoincremento da tabela.

Alternativa A — ❌ Incorreta

TABLE utiliza uma tabela auxiliar no banco de dados para gerar valores sequenciais, não o autoincremento nativo da coluna. É uma estratégia diferente.

Alternativa B — ❌ Incorreta

AUTO_GENERATED não é um valor válido do enum GenerationType. A JPA não possui essa constante.

Alternativa C — ❌ Incorreta

AUTO_INCREMENT também não é uma constante do enum. O nome correto da estratégia para autoincremento é IDENTITY.

Alternativa D — ✅ Correta ⟵ GABARITO

IDENTITY é a estratégia que delega a geração da chave primária ao mecanismo de autoincremento do banco de dados (ex.: SERIAL no PostgreSQL, AUTO_INCREMENT no MySQL). É a escolha adequada quando a coluna id é definida como autoincremento.

Alternativa E — ❌ Incorreta

SELF_GENERATED não existe na especificação JPA. O enum GenerationType só possui os quatro valores mencionados.

PEGA ESSA DICA!

Memorize os quatro valores do GenerationType: TABLE, SEQUENCE, IDENTITY e AUTO. O IDENTITY é o único que depende diretamente do autoincremento da tabela. Nas provas, a banca costuma incluir nomes inventados para testar se você conhece os nomes exatos da API.

Gabarito: letra D.

Link permanente: /questoes/fc064881