Amigos, eu tenho o seguinte mapeamento com esses 2 Beans.
Pessoa.java
@Entity
@Table(schema = "pessoa", name = "pessoa")
@Inheritance(strategy = InheritanceType.JOINED)
public class Pessoa implements Serializable, Comparable<Pessoa> {
@Id
@GeneratedValue
@Column(name = "cod_pessoa")
private Integer codPessoa;
private String nome;
@Temporal(TemporalType.DATE)
private Date nascimento;
private String tipo;
private String documento;
private String atalho;
@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
private PessoaResidencial pessoaResidencial;
//getters e setters omitidos
PessoaResidencial.java
@Entity
@Table(schema = "pessoa", name = "pessoa_residencial")
public class PessoaResidencial implements Serializable {
@Id
private Integer pessoa;
private String endereco;
private String bairro;
private String cidade;
private String uf;
private String cep;
private String telefone1;
@Column(name = "fax")
private String celular;
private String tipo;
@Column(name = "tipo_telefone")
private String tipoTelefone;
private String email;
//getters e setters omitidos
Recuperar eu recupero na boa.
pessoa = pessoaManager.selectById(Integer.valueOf(codPessoa));
Com o codigo acima eu recupero e populo os objetos certinho.
Porem salvar acho que estou fazendo uma “lambança”
Porem salvar estou fazendo assim:
pessoaManager.persist(pessoa);
pessoaResidencial.setPessoa(pessoa.getCodPessoa());
pessoaManager.persist2(pessoaResidencial);
OBS: O id de PessoaResidencial, é o mesmo do gerado pelo Pessoa.
Mas o que me deixa “encucado” é que tem o mapeamento que tras tudo preenchido, e pensei que para salvar, fosse so necessario salvar em um dos dois.Exemplo criando uma pessoa ele salvaria automaticamente uma pessoaResidencial, ou vice e versa…
Forte Abracao galera!