Questão FC373621
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; // atr
Plataforma Java EE
FCC · 2022
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
- TABLE
- AUTO_GENERATED
- AUTO_INCREMENT
- IDENTITY
- SELF_GENERATED
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
GenerationType.IDENTITY indica que o valor da chave primária será gerado pela coluna de auto-increment do próprio banco de dados. Ao usar essa estratégia, o provedor de persistência não gera o id; em vez disso, o banco atribui o valor no momento do INSERT.
Na prática, anotamos @GeneratedValue(strategy = GenerationType.IDENTITY) junto de @Id em um atributo numérico (ex.: Long id). O Hibernate executa o INSERT e, em seguida, recupera a chave gerada pelo banco para preencher o campo id da entidade.
Observação importante: como o id depende do retorno do banco após cada INSERT, essa estratégia impede que o provedor agrupe múltiplos INSERTs em lotes (impacto em batch inserts), e sua compatibilidade depende do suporte à coluna de identidade pelo SGBD utilizado.
Conteúdo do catálogo FC Concursos · Atualizado em