Dificuldade de atualizar dados com relacionamento Um para Muitos
27/11/2018 00:10
0
Ola pessoal, estou com um problema, tentarei detalhar para alguém poder me ajudar.?

Tenho dias tabelas Atividade e Participante com relacionamento unidirecional.

@Entity
@Table(name = "TB_PARTICIPANTE" )
@NoArgsConstructor
@Data
public class Participante implements Serializable {
private static final long serialVersionUID = 1L;
@Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_participante") 
    private Long id;

@ManyToOne(cascade = CascadeType.ALL, optional = true)
@JoinColumn(name = "id_atividade", nullable = true)
private Atividade atividade; ...}

@Entity
@Table(name = "TB_ATIVIDADE" )
@NoArgsConstructor
@Data
public class Atividade implements Serializable {
private static final long serialVersionUID = 1L;
@Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_atividade") 
    private Long id;...}

Meu problema é que quando vou atualizar os dados de participantes ele atualiza numa boa. Porém quando vou atualizar a atividade do participante da erro 4O4.

MEU CONTROLLER 
@PutMapping("/{participanteId}/atividades/{atividadeId}")
    public ResponseEntity<Participante> updateAtividade(@PathVariable Long participanteId, @Valid @RequestBody Participante participante,
    @PathVariable Long atividadeId ) {
Participante upParticipante = participanteService.updateAtividade(participanteId, atividadeId, participante   );
if (upParticipante != null)
return ResponseEntity.ok(upParticipante);

throw new ResourceNotFoundException(participanteId);
    }

MEU SERVICE
public Participante updateAtividade(Long participanteId,  Long atividadeId, Participante participante) { 
Optional<Atividade> atividadeOpt = atividadeRepository.findById(atividadeId);
Optional<Participante>  participanteOpt = participanteRepository.findById(participanteId);
if (participanteOpt.isPresent() && atividadeOpt.isPresent() ) { 

participante.setId(participanteId); 
participante.setAtividade(atividadeOpt.get() );

return participanteRepository.save(participante);
}
return null;
}
Tags: rest, PutMapping


Ainda não faz parte da comunidade???

Para se registrar, clique aqui.

Podcast da itexto



Aprenda Groovy e Grails, Spring e mais com a Formação itexto!

Livro de Spring


/dev/All

Os melhores blogs de TI
em um único lugar!

 
Spring Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.