Tenho um interface web que mostra os clientes e seus comentarios (@OneToMany) e que para deletar e atualizar um comentario, envia o id do Comentario e para inserir um comentario manda o id do Comentario = 0. Primeira pergunta, essa é uma abordagem boa que segue os princípios REST?
Está ocorrendo algum erro que não estou conseguindo desvendar o porquê ao tentar deletar. Segue o erro:
15:53:19,679 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/AbeWebJboss].[javax.ws.rs.core.Application]] (http--127.0.0.1-8080-1) Servlet.service() for servlet javax.ws.rs.core.Application threw exception: org.jboss.resteasy.spi.UnhandledException: java.lang.NullPointerException
at org.jboss.resteasy.core.SynchronousDispatcher.unwrapException(SynchronousDispatcher.java:345) [resteasy-jaxrs-2.2.1.GA.jar:]
código da ComentarioController:
@DELETE
@Path("apaga/{idComentario}")
@Produces(MediaType.APPLICATION_JSON)
public Response apagaComentario(@PathParam("idComentario") int idComentario ) {
comentarioDAO.apaga(idComentario);
return Response.created(null).build();
}
código da ComentarioDAO:
public void apaga(int idComentario) {
Comentario comentario = em.find(Comentario.class, idComentario);
em.remove(comentario);
}
código da Cliente
@OneToMany(cascade = CascadeType.PERSIST)
@JoinColumn(name = "id_cliente")
private List<Comentario> comentarios = new ArrayList<Comentario>();
código da Comentario
@ManyToOne
@JoinColumn(name = "id_cliente")
private Cliente cliente;