Questão de Programação — Frameworks Java — FCC 2022
Programação›Frameworks 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
ATABLE
BAUTO_GENERATED
CAUTO_INCREMENT
DIDENTITY
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.