tenho uma entidade fabricante e uma entidade modelo sendo que um fabricante contem muitos modelos e um modelo contem um fabricante estou com um problema na hora de remover o modelo do banco por causa do relacionamento e quando uso o cascadeType.ALL ou o cascadeType.REMOVE ele remove o fabricante tbm mais só quero remover o modelo
estou colocando aqui em baixo as minha entidades.
package br.com.pi.quiosque.entity;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;
@Entity
@Table(name = "modelos")
public class Modelo extends AbstractEntity{
private static final long serialVersionUID = -1073678075989799547L;
private String descricao;
private String anoModelo;
private String preco;
private Fabricante fabricante;
private List<Foto> fotos;
private List<Acessorio> acessorios;
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String getAnoModelo() {
return anoModelo;
}
public void setAnoModelo(String anoModelo) {
this.anoModelo = anoModelo;
}
public String getPreco() {
return preco;
}
public void setPreco(String preco) {
this.preco = preco;
}
@ManyToMany
@LazyCollection(LazyCollectionOption.FALSE)
@JoinTable(name = "modelo_acessorios", joinColumns = { @JoinColumn(name = "modelo_id") }, inverseJoinColumns = { @JoinColumn(name = "acessorio_id") })
public List<Acessorio> getAcessorios() {
return acessorios;
}
public void setAcessorios(List<Acessorio> acessorios) {
this.acessorios = acessorios;
}
@OneToMany(cascade=CascadeType.ALL)
@LazyCollection(LazyCollectionOption.FALSE)
@JoinTable(name = "modelo_fotos", joinColumns = {@JoinColumn(name = "modelo_id")}, inverseJoinColumns = {@JoinColumn(name = "foto_id")})
public List<Foto> getFotos() {
return fotos;
}
public void setFotos(List<Foto> fotos) {
this.fotos = fotos;
}
@ManyToOne
public Fabricante getFabricante() {
return fabricante;
}
public void setFabricante(Fabricante fabricante) {
this.fabricante = fabricante;
}
}
entidade fabricante
package br.com.pi.quiosque.entity;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;
@Entity
@Table(name="fabricantes")
public class Fabricante extends AbstractEntity{
private static final long serialVersionUID = 7388632752625103216L;
private String nome;
private String foto;
private List<Modelo> modelos;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getFoto() {
return foto;
}
public void setFoto(String foto) {
this.foto = foto;
}
@OneToMany(cascade=CascadeType.REMOVE)
@LazyCollection(LazyCollectionOption.FALSE)
@JoinTable(name = "fabricante_modelos", joinColumns = {@JoinColumn(name = "fabricante_id")}, inverseJoinColumns = {@JoinColumn(name = "modelo_id")})
public List<Modelo> getModelos() {
return modelos;
}
public void setModelos(List<Modelo> modelos) {
this.modelos = modelos;
}
}
desde ja eu agradeço a ajuda.