Fórum Problema ao deletar um objeto - Removing a detached instance #392912
21/12/2010
0
//classe de domínio@Entity@Table(name = "CLIENTE")@SequenceGenerator(name = "SEQ_ID_GEN_CLIENTE", sequenceName = "SEQ_ID_GEN_CLIENTE")public class Cliente { @Id @GeneratedValue(strategy = GenerationType.AUTO, generator = "SEQ_ID_GEN_CLIENTE") private Long id;
@Column(name = "NOME") @Length(min = 1, max = 255) @NotEmpty private String nome;
@Column(name = "CPF", length = 15) @NotEmpty private String cpf; @OneToMany(cascade = CascadeType.ALL, mappedBy = "cliente") private List<CarroCliente> carros;
@ManyToOne @JoinColumn(name = "ID_TIPO_CLIENTE_FK") private TipoCliente tipoCliente; @OneToMany(cascade = CascadeType.ALL,mappedBy="cliente") private List<Lavagem> lavagens;
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getNome() { return nome; }
public void setNome(String nome) { this.nome = nome; }
public String getCpf() { return cpf; }
public void setCpf(String cpf) { this.cpf = cpf; }
public List<CarroCliente> getCarros() { return carros; }
public void setCarros(List<CarroCliente> carros) { this.carros = carros; }
public TipoCliente getTipoCliente() { return tipoCliente; }
public void setTipoCliente(TipoCliente tipoCliente) { this.tipoCliente = tipoCliente; } public List<Lavagem> getLavagens() { return lavagens; }
public void setLavagens(List<Lavagem> lavagens) { this.lavagens = lavagens; } @Override public boolean equals(Object obj){ if( (obj instanceof Cliente) && ( ((Cliente)obj).getId().equals(this.id)) ){ return true; }else{ return false; } }
}
//imports@Controller("clienteController")public class ClienteController {
private Cliente cliente;
@Resource private ClienteService clienteService;
@Resource private TipoClienteService tpclienteservice;
private List<Cliente> clientes;
private List<SelectItem> tipoclientes = new ArrayList<SelectItem>();
public String deletar(){ Cliente cliente = clienteService.findCliente(this.cliente.getId()); //estou recuperando o objeto do banco antes de deletar mas mesmo assim não obtive sucesso //Cliente cliente = this.clienteService.pesquisaClienteByCpf(this.cliente.getCpf()); clienteService.deleteCliente(cliente); configCliente(); return "formDeletarCliente"; } //outros metodos e setters e getters }Estou fazendo um projeto para treinar e aprender e sobre algumas tecnologias, estou usando Spring MVC,Hibernate + JPA, banco Oracle, JSF+Richfaces... todas exceto Oracle estou comecei a estudar (quando tenho tempo) a um mês... vcs podem me ajudar galera a resolver esse problema?
vamos lá ja sei que meu objeto está detached... a sessão do hibernate foi fechada, então tenho que recuperar o objeto do banco de dados para q ele volte para o ciclo de persistencia e com isso eu possa fazer as alterações que eu quiser. Mas acho que já estou fazendo isso...
Stiff
Curtir tópico
+ 0
Responder
Posts
21/12/2010
Davi Costa
Mostra o método que vc está fazendo isso, essa recuperação dele antes de removê-lo.
Se vc n estiver fazendo isso, recupera esse objeto, da maneira mais simples possível p vc, pelo id talvez, imediatamente antes de deletá-lo.
Att Davi
Se vc n estiver fazendo isso, recupera esse objeto, da maneira mais simples possível p vc, pelo id talvez, imediatamente antes de deletá-lo.
Att Davi
Responder
Gostei + 0
21/12/2010
Stiff
Mostra o método que vc está fazendo isso, essa recuperação dele antes de removê-lo.
Se vc n estiver fazendo isso, recupera esse objeto, da maneira mais simples possível p vc, pelo id talvez, imediatamente antes de deletá-lo.
Att Davi
Cara, valeu pela ajuda, consegui resolver de forma bem simples, eu fiz com que na minha camada de serviço... no método deletar fizesse uma busca pelo meu id... assim trazendo o objeto do banco no momento que eu tento deletar, dessa forma fiz com que o objeto deixasse de ser detached e voltasse ao ciclo de persistência permitindo que eu realizasse as alterações necessárias.Se vc n estiver fazendo isso, recupera esse objeto, da maneira mais simples possível p vc, pelo id talvez, imediatamente antes de deletá-lo.
Att Davi
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)