Update em um relacionamento OneToMany

Galera,
Estou fazendo alguns testes com Hibernate em relação a relacionamento One-To-Many.
Eu tenho 2 classes: Setor e Cargo. 1 Setor possui vários cargos e um cargo está relacionado a um setor.
Mapeei da seguinte forma

public class Setor {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
private String nome;
private String descricao;
@OneToMany
private List<Cargo> cargos;

}

public class Cargo{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
private String nome;
private String descricao;

}

Digamos que o Setor com código 1 possui os cargos 1,2,3 e que o Setor com código 2 possui os cargos com código 4 e 5.

Como faço para alterar o cargo com código 1 para que ele seja do Setor com código 2

Você altera direto no objeto, removendo ele da coleção (cargos) do setor 1 e adicionando-o na coleção do setor 2.

Mas se você precisa fazer este tipo de alteração, considere usar o relacionamento @ManyToOne de cargo pra setor, ao invés de @OneToMany de setor para cargos.


Mas não esqueça de fazer

[code]setor1.getCargos().remove(cargo1);[/code]

E mesmo criando o lado ManyToOne você precisa fazer a alteração pela lista.

Mas não esqueça de fazer

E mesmo criando o lado ManyToOne você precisa fazer a alteração pela lista.

[quote=Hebert Coelho]setor2.getCargos().add(cargo1);

Mas não esqueça de fazer

E mesmo criando o lado ManyToOne você precisa fazer a alteração pela lista.[/quote]

Exato, minha sugestão seria de usar somente o lado ManyToOne… sempre tento evitar mapeamentos bidirecionais. Mas nem sempre é viável…