Pular para o conteúdo principal

Questão de Programação — Plataforma Java — FCC 2025

ProgramaçãoPlataforma Java
Código
fc074357
Banca
FCC
Órgão
TRF - 4ª REGIÃO
Ano
2025
Nível
Superior
Cargo
Técnico Judiciário - Área Apoio Especializado - Especialidade: Desenvolvimento de Sistema da Informação
Um analista cria a entidade Processo para um sistema de um tribunal, persistindo processos judiciais em um banco relacional, com número do processo gerado automaticamente, tipo de ação não nulo e relacionamento N: 1 com a entidade Vara (unidade judicial). Nesse contexto, o mapeamento correto da entidade Processo é @Entity para indicar que Processo é uma entidade.
  1. A@Id e @GeneratedValue (strategy = GenerationType.SEQUENCE) para o atributo número do processo, @Column (nullable=true) para tipo de ação, @ManyToOne @JoinColumn (name = "processo_id", nullable false) para o atributo que representaavara.
  2. B@Column (nullable=false) para o atributo que representa o tipo de ação, @ManyToOne (mappedBy = "vara") e @JoinColumn (name = "numero", nullable = false) para o atributo que representa a vara.
  3. C@Id e @GeneratedValue (strategy = GenerationType.IDENTITY) para o atributo número do processo, @Column (nullable=false) para o atributo que representa o tipo de ação, @ManyToOne e @JoinColumn (name = "vara id", nullable = false) para o atributo que representa a vara.
  4. D@Id e @GeneratedValue (type = GenerationType.IDENTITY) para o atributo número do processo, @Column (nullable=false) para tipo de ação, @OneToOne @JoinColumn (name = "vara id", nullable = true) para o atributo que representa a vara.
  5. E@Column (nullable=false) para tipo de ação, @ManyToOne e @JoinColumn (id = "vara_id", nullable false) para o atributo que representaavara.
Revelar gabarito e comentário

GabaritoC — @Id e @GeneratedValue (strategy = GenerationType.IDENTITY) para o atributo número do processo, @Column (nullable=false) para o atributo que representa o tipo de ação, @ManyToOne e @JoinColumn (name = "vara id", nullable = false) para o atributo que representa a vara.

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”.

Mapeamento JPA: anotações para entidade Processo

Gabarito: letra C. A alternativa C utiliza corretamente @Id e @GeneratedValue(strategy = GenerationType.IDENTITY) para a chave primária com auto-incremento, @Column(nullable = false) para o campo obrigatório (tipo de ação), e @ManyToOne com @JoinColumn(name = "vara_id", nullable = false) para o relacionamento N:1. As demais alternativas apresentam erros como uso de mappedBy no lado errado, @OneToOne, falta de @Id ou nullable incorreto.

Alternativa A — ❌ Incorreta

  • @Column(nullable = true) para tipo de ação, que deve ser não nulo.

  • @JoinColumn(name = "processo_id") nomeia a coluna de forma semanticamente incorreta (deveria referenciar a chave estrangeira para Vara).

  • Falta parênteses em "nullable false".

Alternativa B — ❌ Incorreta

  • Uso de mappedBy = "vara" no lado N (Processo). mappedBy é utilizado no lado 1 (Vara) em um relacionamento bidirecional.

  • @JoinColumn(name = "numero") não faz sentido, pois número é a chave primária.

Alternativa C — ✅ Correta ⟵ GABARITO

  • @Id e @GeneratedValue(IDENTITY) adequados para geração automática de chave primária.

  • @Column(nullable = false) para o campo obrigatório.

  • @ManyToOne e @JoinColumn com nullable = false para o relacionamento N:1 (a coluna "vara_id" na tabela Processo é chave estrangeira). A grafia "vara id" com espaço provavelmente é um erro de digitação, mas a semântica está correta.

Alternativa D — ❌ Incorreta

  • @OneToOne em vez de @ManyToOne, divergindo do relacionamento N:1.

  • @JoinColumn(nullable = true) não condiz com a obrigatoriedade (embora a relação possa ser opcional, o principal erro é o tipo de associação).

Alternativa E — ❌ Incorreta

  • Falta @Id e @GeneratedValue.

  • @JoinColumn usa parâmetro "id" em vez de "name".

  • "nullable false" sem parênteses.

PEGA ESSA DICA!

Em JPA, lembre-se: @Id + @GeneratedValue para chave primária; @ManyToOne no lado N (proprietário) com @JoinColumn; @OneToMany no lado 1 com mappedBy. O atributo nullable = false em @Column e @JoinColumn indica obrigatoriedade da coluna.

Gabarito: letra C

Link permanente: /questoes/fc074357