Questão de Programação — Plataforma Java — FCC 2025
Programação›Plataforma 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.
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.
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.
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.
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.
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.