Sugestão de relacionamento com JPA
Boa tarde Pessoal, tenho três tabelas, fiz mapeamento delas com JPA, quero ver com vocês se dessa forma esta certo? No banco deu tudo certo, mas preciso saber se posso melhorar.
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "TBPESSOA")
public class Pessoa {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID_PESSOA")
private Integer id;
}
@Entity
@PrimaryKeyJoinColumn(name = "ID_PESSOA")
@Table(name = "TBFUNCIONARIO")
public class Funcionario extends Pessoa {
}
@Entity
@PrimaryKeyJoinColumn(name = "ID_PESSOA")
@Table(name = "TBPROPRIETARIO")
public class Proprietario extends Pessoa {
}[img]http://arquivo.devmedia.com.br/forum/imagem/301136-20150618-175843.jpg[/img]
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "TBPESSOA")
public class Pessoa {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID_PESSOA")
private Integer id;
}
@Entity
@PrimaryKeyJoinColumn(name = "ID_PESSOA")
@Table(name = "TBFUNCIONARIO")
public class Funcionario extends Pessoa {
}
@Entity
@PrimaryKeyJoinColumn(name = "ID_PESSOA")
@Table(name = "TBPROPRIETARIO")
public class Proprietario extends Pessoa {
}[img]http://arquivo.devmedia.com.br/forum/imagem/301136-20150618-175843.jpg[/img]
Adriano Aguiar
Curtidas 0
Respostas
Ronaldo Lanhellas
18/06/2015
Sim, tem como melhorar. Por questões performáticas o ideal é usar composição em vez de herança neste caso, pois Pessoa tem muitos campos e irá sobrecarregar o sistema com campos que nem sempre vocÊ usará.
Então, Funcionario TEM Pessoa , e não Funcionario É Pessoa.
Ex:
Então, Funcionario TEM Pessoa , e não Funcionario É Pessoa.
Ex:
public class Funcionario{
...
private Pessoa pessoa;
...
}
GOSTEI 0
Ronaldo Lanhellas
18/06/2015
Sim, tem como melhorar. Por questões performáticas o ideal é usar composição em vez de herança neste caso, pois Pessoa tem muitos campos e irá sobrecarregar o sistema com campos que nem sempre vocÊ usará.
Então, Funcionario TEM Pessoa , e não Funcionario É Pessoa.
Ex:
Então, Funcionario TEM Pessoa , e não Funcionario É Pessoa.
Ex:
public class Funcionario{
...
private Pessoa pessoa;
...
}
GOSTEI 0