Erro com o remove

E ae galera,

Estou montando um projeto web onde tem que adicionar CDs, Musicas e Usuarios.
Só que quando eu tento remover ele não remove.
e da o seguinte erro abaixo.

Alguem pode me da luz
Obrigado

[quote]HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: not-null property references a null or transient value: br.com.caelum.lojavirtual.modelo.Musica.titulo
org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:69)
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

org.hibernate.PropertyValueException: not-null property references a null or transient value: br.com.caelum.lojavirtual.modelo.Musica.titulo
org.hibernate.engine.Nullability.checkNullability(Nullability.java:95)
org.hibernate.event.def.DefaultDeleteEventListener.deleteEntity(DefaultDeleteEventListener.java:272)
org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:163)
org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:74)
org.hibernate.impl.SessionImpl.fireDelete(SessionImpl.java:793)
org.hibernate.impl.SessionImpl.delete(SessionImpl.java:771)
br.com.caelum.lojavirtual.dao.Dao.remove(Dao.java:22)
br.com.caelum.lojavirtual.logic.MusicaLogic.remove(MusicaLogic.java:46)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.vraptor.component.DefaultLogicMethod.execute(DefaultLogicMethod.java:61)
org.vraptor.interceptor.ExecuteLogicInterceptor.intercept(ExecuteLogicInterceptor.java:32)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.SettingAndValidationInterceptor.intercept(SettingAndValidationInterceptor.java:130)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.InjectionInterceptor.intercept(InjectionInterceptor.java:41)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.ComponentLookupInterceptor.intercept(ComponentLookupInterceptor.java:57)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
br.com.caelum.lojavirtual.logic.DaoInterceptor.intercept(DaoInterceptor.java:18)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
br.com.caelum.lojavirtual.logic.AutorizadorInterceptor.intercept(AutorizadorInterceptor.java:28)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:47)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:97)
org.vraptor.core.DefaultController.execute(DefaultController.java:46)
org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:44)
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
Apache Tomcat/6.0.18[/quote]

putz cara…

posta o codigo q gerou o erro… senão fica dificil :mrgreen:

po cara foi mal acabei esquecendo de postar os codigos

[code]<%@page pageEncoding=“UTF-8” contentType=“text/html; charset=UTF-8” %>
<%@taglib uri=“http://displaytag.sf.net” prefix=“display” %>

Lista de musicas <%@include file="../menu.jsp" %>
<h1>Musicas</h1>

<display:table id="musica" name="${musicas}" requestURI="musica.lista.logic">
	<display:column property="id" />
	<display:column property="cd.titulo" sortable="true" title="CD" />
	<display:column property="titulo" sortable="true" />
	<display:column property="preco" sortable="true" />
	<display:column>
		<a href="musica.editar.logic?musica.id=${musica.id}">editar</a>
	</display:column>
	<display:column>
		<a href="musica.remove.logic?musica.id=${musica.id}">remove</a>
	</display:column>
</display:table>
[/code] [code]package br.com.caelum.lojavirtual.logic;

import java.util.List;

import org.vraptor.annotations.Component;
import org.vraptor.annotations.InterceptedBy;
import org.vraptor.plugin.hibernate.Validate;

import br.com.caelum.lojavirtual.dao.DaoFactory;
import br.com.caelum.lojavirtual.modelo.Cd;
import br.com.caelum.lojavirtual.modelo.Musica;

@Component(“musica”)
@InterceptedBy({AutorizadorInterceptor.class, DaoInterceptor.class})
public class MusicaLogic {

private final DaoFactory daoFactory;
private Musica musica;
private List<Musica> musicas;

public MusicaLogic(DaoFactory daoFactory){
	this.daoFactory = daoFactory;
}

//formulario de adicao
public void formulario(){
}

//formulario de edicao
public void editar (Musica musica){
	//carrega os dados no banco para edicao
	this.musica = this.daoFactory.getMusicaDao().procura(musica.getId());
}

//Adiciona uma musica nova ou atualiza se for edicao
@Validate(params={"musica"})
public void armazena(Musica musica){
	this.daoFactory.beginTransaction();
	this.daoFactory.getMusicaDao().atualiza(musica);
	this.daoFactory.commit();
}

//remove uma musica
public void remove(Musica musica){
	this.daoFactory.beginTransaction();
	this.daoFactory.getMusicaDao().remove(musica);
	this.daoFactory.commit();
}

//lista todas as musicas
public void lista(){
	this.musicas = this.daoFactory.getMusicaDao().listaTudo();
}

//getter pra musica
public Musica getMusica(){
	return musica;
}

//getter pra lista de musicas
public List<Musica> getMusicas(){
	return musicas;
}

//metodo usado para popularo select
public List<Cd> getListaCds(){
	return this.daoFactory.getCdDao().listaTudo();
}

}[/code]

[code]package br.com.caelum.lojavirtual.modelo;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;

import org.hibernate.validator.NotEmpty;

@Entity
public class Musica {
@Id
@GeneratedValue
private Long id;
@NotEmpty(message=“O titulo não pode estar vazio!”)
private String titulo;
private Double preco;

@ManyToOne
private Cd cd;

public Long getId() {
	return id;
}

public void setId(Long id) {
	this.id = id;
}

public String getTitulo() {
	return titulo;
}

public void setTitulo(String titulo) {
	this.titulo = titulo;
}

public Double getPreco() {
	return preco;
}

public void setPreco(Double preco) {
	this.preco = preco;
}

public Cd getCd() {
	return cd;
}

public void setCd(Cd cd) {
	this.cd = cd;
}

}[/code]