Tenho um relacionamento @ManyToOne onde a FK pode ser nula.
Consigo gravar o registro com a FK nula, porém, na outra tabela do relacionamento é inserido um registro (só com o id).
O relacionamento é o seguinte:
Um aluno pode ou não pertencer a uma instituição.
Meu mapeamento está assim:
Classe Aluno.java
@ManyToOne(cascade=CascadeType.PERSIST)
@JoinColumn(name="idInstituicao", nullable = true, insertable = false, updatable = false)
private Instituicao instituicao = new Instituicao();
Instituicao.java
@OneToMany(mappedBy="instituicao")
private List<Aluno> alunos = new ArrayList<Aluno>();
Obs: se eu tirar o cascade do relacionamento ManyToOne, ocorre a seguinte exceção:
Caused by: java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST: modelo.entidade.Instituicao@cac61b.
Estou usando Postgres e EclipseLInk