Pessoa estou com um problema que ja tentei resolver, mas so funciona o modelo “paralelo” .
Irei passar os fontes resumidos.
Eu tenho 2 tabelas:
PessoaFisica e PessoaResidencial
[ PessoaFisica ] <Table>
id <Column> <PK>
nome <Column>
---------------------------
[ PessoaResidencial ] <Table>
id <Column> <PK> <FK -> id [ PessoaFisica ] >
endereco <Column>
Estou mapeando a minhas classes assim:
PessoaFisica.java
@Entity
public class PessoaFisica {
@Id
@GeneratedValue
private Integer id;
private String nome;
@OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "id") // mapeamento para a tabela PessoaResidencial e coluna ID.
private PessoaResidencial pessoaResidencial;
// geters e setters omitidos.
PessoaResidencia.java
@Entity
public class PessoaResidencia {
@Id
@OneToOne(cascade = {}, fetch = FetchType.LAZY)
@JoinColumn(name = "ID")
private PessoaFisica id;
private String nome;
Mais assim da erro. Gostaria de saber se estou fazendo errado.
Eu sei se eu criar mais 1 coluna(ID_NOVO) na tabela PessoaResidencial como chave primaria e mapear assim:
@Entity
public class PessoaResidencia {
@Id
@GeneratedValue
private Integer id_novo;
@OneToOne(cascade = {}, fetch = FetchType.LAZY)
@JoinColumn(name = "ID")
private PessoaFisica id;
private String nome;
Funciona perfeitamente.Mas infelizmente nao posso alterar a tabela.
Consegui ser Claro?
[]'s a todos…