Galera eu tenho um relacionamento de n pra n com colunas extras numa terceira tabela de relacionamento estou inserindo as duas entidade que constituem esse relacionamento no banco e só quando tenho as duas tento fazer o relacionamento entretanto o hibernate vêm me lançando esse erro. Agradeço a ajuda galera to doido aqui tentando resolver isso e não consigo.
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
Abaixo segue meu mapeamento para as entidades e meu método que atualiza o relacionamento entre as entidades.
Entidade operadora.
[code]
@Entity
@Table(name = “operadora”)
public class Operadora {
@Id
@Column(name = "idoperadora")
private String idOperadora;
@Column(length = 20)
@NotNull
private String descricao;
@OneToMany(mappedBy = "operadora", cascade = CascadeType.ALL)
private Collection<Mensagem> listaMensagens;
@NotNull
private boolean ativo;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "operadora", cascade = {
CascadeType.PERSIST, CascadeType.MERGE })
@Cascade( { org.hibernate.annotations.CascadeType.SAVE_UPDATE,
org.hibernate.annotations.CascadeType.DELETE_ORPHAN })
private Collection<OperadoraRota> listaOperadoraRotas;
}[/code]
Entidade Rota
[code]
@Entity
@Table(name = “rota”)
public class Rota {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="idRota")
private long idRota;
@Column(length = 50)
@NotNull
private String descricao;
@Column(length = 20)
@NotNull
private String login;
@Column(length = 20)
@NotNull
private String senha;
@Column(length = 50)
@NotNull
private String endereco;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "rota", cascade = {
CascadeType.PERSIST, CascadeType.MERGE })
@Cascade( { org.hibernate.annotations.CascadeType.SAVE_UPDATE,
org.hibernate.annotations.CascadeType.DELETE_ORPHAN })
private Collection<OperadoraRota> listaOperadoraRotas;
}[/code]
Entidade intermediária que relaciona as duas entidades.
@Entity
@Table(name="operadorarota")
public class OperadoraRota {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="idOperadoraRota")
private long idOperadoraRota;
@ManyToOne
@JoinColumn(name="idrota")
private Rota rota;
@ManyToOne
@JoinColumn(name="idoperadora")
private Operadora operadora;
@Column
private double tarifaUnidade;
@Column
private boolean rotaPadrao;
Método Update que atualiza o relacionamento entre as duas entidades (lembrando as mesmas já estão no banco de dados o que eu faço é relacionar uma com a outra e pronto)
public void atualizarOperadora(String idOperadora, Operadora operadora) {
operadora.setIdOperadora(idOperadora);
session = CreationSessionFactory.openSession();
tx = session.beginTransaction();
session.update(operadora);
tx.commit();
session.close();
}