FC ConcursosFC Concursos

Questão FC373629

Atenção: O Modelo Entidade-Relacionamento abaixo deve ser utilizado para responder a questão. Em uma aplicação que utiliza JPA e Hibernate, em condições ideais, a codificação corre

Plataforma Java EE

FCC · 2022

Atenção: O Modelo Entidade-Relacionamento abaixo deve ser utilizado para responder a questão.

 

 

Em uma aplicação que utiliza JPA e Hibernate, em condições ideais, a codificação correta do trecho que define o atributo da classe Login.java, que é chave primária na tabela Login do Modelo Entidade-Relacionamento é

  1. @Pk

    @NotNull(false)

    @ColumnName("emailFuncionario") private String emailFuncionario;

  2. @Id

    @Basic(optional = true)

    @JoinColumn(field = "emailFuncionario") private String emailFuncionario;

  3. @PrimaryKey

    @Basic(required = true)

    @Field(name = "emailFuncionario") private String emailFuncionario;

  4. @Pk

    @Basic(required = true)

    @Column(name = "emailFuncionario") private String emailFuncionario;

  5. @Id

    @Basic(optional = false)

    @Column(name = "emailFuncionario") private String emailFuncionario;

Mostrar resposta e comentário

Gabarito

Errado

Comentário do professor

Na alternativa correta, a combinação de anotações mapeia corretamente o atributo que representa a chave primária na entidade JPA.

@Id indica ao provedor JPA/Hibernate que o atributo é a identidade da entidade — ou seja, a chave primária.

@Basic(optional = false) declara que o valor não pode ser opcional em tempo de persistência (atributo obrigatório do ponto de vista da entidade).

@Column(name = "emailFuncionario") faz o mapeamento explícito entre o nome do atributo Java e a coluna do banco de dados, garantindo que o JPA leia/grave na coluna correta.

Colocar essas anotações sobre o campo (acesso por campo) é coerente com o padrão de mapeamento; o tipo String representa corretamente um email. Para garantir restrição no nível do banco, pode-se também usar nullable=false em @Column, se desejado.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo