FC ConcursosFC Concursos

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

  1. TABLE
  2. AUTO_GENERATED
  3. AUTO_INCREMENT
  4. IDENTITY
  5. 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

Continue aprendendo