Bom dia
Tenho uma relação OneToOne onde a PK do “filho” é a PK do “pai”, até então a relação funcionava e estava dessa maneira:
Classe Pai:
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
@PrimaryKeyJoinColumn(name = "id")
private Cliente cliente;
Classe Filho:
@MapsId
@OneToOne(fetch = FetchType.LAZY, mappedBy = "cliente", optional = false)
@JoinColumn(name = "id")
private Pessoa pessoa;
Mas estou tentando melhorar performance da aplicação e mudei o mapeamento da classe “pai” para:
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY, optional = false)
@PrimaryKeyJoinColumn(name = "id")
private Cliente cliente;
Agora ao tentar gravar a classe Pai, ele tenta gravar o Filho, mas tenta gravar também a propriedade pessoa na classe Filho e ela está nula. E ocorre ConstraintViolationException.
Porque ele tenta persistir e como eu poderia corrigir isso?