Erro ao Deletar @ManyToMany (Hibernate)

2 respostas
kvnallen

Pessoal, é o seguinte, tenho a classe Fornecedor e Produto.
uso @ManyToMany, estou conseguindo salvar normalmente, mas na hora de deletar ele da o erro

2416 [main] ERROR org.hibernate.jdbc.AbstractBatcher - Exception executing batch: 
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1

Aqui seguem as classes:

@Entity
@Table(name="tbl_fornecedor")
public class Fornecedor {

	@Id
	@GeneratedValue
	@Column(name="id_fornecedor")
	private long id;

	@Column(name = "nome", nullable = false, unique=true , length = 50)
	private String nome;

	@Column(name = "telefone", length = 20)
	private String telefone;

	@Column(name = "endereco", length = 70)
	private String endereco;

	@Column(name = "numero", length = 6)
	private String numero;

	@Column(name = "bairro", length = 20)
	private String bairro;

	@Column(name = "conta", length = 30)
	private String conta;

	@Column(name = "banco", length = 30)
	private String banco;

	@Column(name = "cnpj", length = 14, unique=true)
	private String cnpj;

	@Column(name = "email", length = 40)
	private String email;
	
	//Getters e Setters
@Entity
@Table(name = "tbl_produto")
public class Produto {

	@Id
	@GeneratedValue
	@Column(name = "id_produto")
	private long id;

	@Column(name = "nome", nullable = false, length = 50)
	private String nome;

	@Column(name = "preco_unitario", length = 10, nullable = false)
	private double precoUnitario;

	@Column(name = "preco_venda", length = 10, nullable = false)
	private double precoVenda;

	@Column(name = "unidade_medida", length = 10, nullable=false)
	private String unidadeMedida;

	@Column(name = "quantidade_disponivel", length = 20, nullable=false)
	private int quantidadeDisponivel;

	@Column(name = "tipo", length=10)
	private String tipo;

	@ManyToMany(cascade=javax.persistence.CascadeType.ALL)
	@JoinTable(name="produtos_fornecedores",
	joinColumns = {@JoinColumn(name="id_produto")},
	inverseJoinColumns = {@JoinColumn(name="id_fornecedor")})
	private List<Fornecedor> fornecedores;
	

	//Getters e Setters

2 Respostas

fabiomedeirosf

Dá uma olhada neste post:

http://serjava.blogspot.com.br/2012/05/jpa-manytomany.html

Acho que vai ajudar no seu mapeamento.

[]s

M

Tenta colocar um LazyCollection, pra mim funcionou… nao conseguia excluir profissionais de uma lista até utilizar esta anotação… ficou assim:

@ManyToMany(cascade = CascadeType.ALL, mappedBy = "profissionais") @LazyCollection(LazyCollectionOption.FALSE) private List<Proposta> propostas;

Tenta ai e fala pra gente se funcionou (:

Criado 15 de maio de 2012
Ultima resposta 16 de mai. de 2012
Respostas 2
Participantes 3