Fórum Sugestão de relacionamento com JPA #523303
18/06/2015
0
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
Curtir tópico
+ 0
Responder
Posts
20/06/2015
Ronaldo Lanhellas
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;
...
}
Responder
Gostei + 0
20/06/2015
Ronaldo Lanhellas
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;
...
}
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)