Olá, tenho essas duas entidades:
@Entity
@Table(name = "PESSOA")
@org.hibernate.annotations.Entity(dynamicInsert = true, dynamicUpdate = true)
public class Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID_PESSOA", nullable = false)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "pessoa_seq")
@SequenceGenerator(sequenceName = "seq_pessoa", name = "pessoa_seq", allocationSize = 1)
private Long idPessoa;
@OneToOne(mappedBy = "pessoa", cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
private PessoaFisica pessoaFisica;
...
[code]
@Entity
@Table(name = “PESSOA_FISICA”)
public class PessoaFisica implements Serializable {
@Id
@Column(name = “ID_PESSOA”, insertable = false, updatable = false)
private Long idPessoa;
@OneToOne
@JoinColumn(name = "ID_PESSOA")
private Pessoa pessoa;
…
}[/code]
Estou tentando inserir nas duas tabelas da seguinte forma:
Pessoa pessoa = new Pessoa();
pessoa.setNome("Nome");
PessoaFisica pessoaFisica = new PessoaFisica();
pessoaFisica.setSexo("M");
pessoa.setPessoaFisica(pessoaFisica);
...
DaoFactory.getPessoaDao().save(pessoa);
Porém dá o seguinte erro:
org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): model.entity.PessoaFisica
Como eu faço para inserir uma pessoa e uma pessoa física ao mesmo tempo?