ManyToMany e JoinTable sem insert

Boa tarde Gujeanos.

Estou apanhando para um relacionamento entre 3 tabelas e gostaria da ajuda de vcs

public class Suino implements Serializable {
}
public class EventosSuino extends Persistente {
@OneToOne
@JoinColumn(name="idaprovacao")
private Inspecao aprovacao;

@OneToOne
@JoinColumn(name="idvenda")
private Venda venda;

@OneToOne
@JoinColumn(name="idsuino")
private Suino suino;
}
public class Venda  {
@ManyToMany
@JoinTable(name="e33eventossuino",uniqueConstraints=@UniqueConstraint(columnNames="idsuino"),
	joinColumns={@JoinColumn(name="idvenda",insertable=false,updatable=false)},
	inverseJoinColumns={@JoinColumn(name="idsuino",insertable=false,updatable=false)})
public Set<Suino> getSuinos() {
	return super.getSuinos();
}

}

Para cada suino existe um e somente um registro de eventosuino que armazena os eventos daquele suino(venda,inspeção).
O que acontece é que quando eu dou um insert(venda) o hibernate inseri a venda normalmente porém tenta inserir um novo registro de eventosuino devido ao mapeamento do @joinTable, ao inves de fazer o update no já existente, dando erro de chave duplicada.

O que eu preciso é que quando eu insira uma venda, o hibernate realize o update do eventosuino ao inves de tentar inserir, ou simplesmente ignore para que eu faça o update manualmente.

09/09/2011 14:38:32  
INFO: Hibernate: insert into e33venda (dtevento, boletim, categoria, idcomprador, dtPrevisaoSaida, dtVenda, idgranjasaida, notaFiscal, pesoTotal, situacao, valorVenda) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
09/09/2011 14:38:33  
INFO: Hibernate: update e33venda set dtevento=?, boletim=?, categoria=?, idcomprador=?, dtPrevisaoSaida=?, dtVenda=?, idgranjasaida=?, notaFiscal=?, pesoTotal=?, situacao=?, valorVenda=? where id=?
09/09/2011 14:38:33  
INFO: Hibernate: insert into e33eventossuino (idvenda, idsuino) values (?, ?)
SEVERE: 8380 [http-thread-pool-8080(1)] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 1062, SQLState: 23000
09/09/2011 14:38:33  
SEVERE: 8381 [http-thread-pool-8080(1)] ERROR org.hibernate.util.JDBCExceptionReporter - Duplicate entry '136674' for key 'idsuino'
Caused by: java.sql.BatchUpdateException: Duplicate entry '136674' for key 'idsuino'
	at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2024)
	at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1449)
	at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
	at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
	... 51 more