Erro no commit de inserção

Pessoal, porque o método abaixo está gerando um delete antes do insert?
Quando chega no commit acontece isso.

public class TestaMetodos {

public static void main(String[] args) {

Configuration cfg = new AnnotationConfiguration();
cfg.configure("/hibernate.cfg.xml");
SessionFactory sf = cfg.buildSessionFactory();
Session sessao = sf.openSession();
Transaction tx = sessao.beginTransaction();
tx.begin();
		
		
Pessoa pessoa = new Pessoa();
pessoa = (Pessoa) sessao.get(Pessoa.class, 2);
Grupo grupo = (Grupo) sessao.get(Grupo.class, 4);
		
pessoa.setGrupo(new ArrayList<Grupo>());
pessoa.getGrupo().add(grupo);
sessao.save(pessoa);
					
tx.commit();
sessao.close();
}

}

Resultado:
Hibernate: delete from cerimonial.pessoa_has_grupo where pessoa_id=?
Hibernate: insert into cerimonial.pessoa_has_grupo (pessoa_id, grupo_id) values (?, ?)

Provavelmente por causa que você redefiniu o relacionamento:

pessoa.setGrupo(new ArrayList<Grupo>());
pessoa.getGrupo().add(grupo);
sessao.save(pessoa); 

Quando você atribuiu uma nova collection ao grupo de pessoa. Ele apagou todos do relacionamento para salvar os novos. Se não fosse feito isto, dá um trabalho bom controlar quem saiu do relacionamento para ser deletado, quem ficou para ser atualizado e quem entrou para ser inserido… Assim todos são deletados e insere-se todos.

Luiz,

Só que o método está deletando uma linha no banco. Como faço para que isso não aconteca?