Olá,
uma duvia como fazer as anotações para as classes abaixo
onde no banco de dados tenho três tabelas:
e o campo que sei que vai jogar na classe fisica é o campo tipo_pessoa
que indica se é fisica ou juridica ???
Não sei como fazer as anotações e como o JPA/Hibernate será que classe
vai alimentar fisica ou juridica para a pessoa seleciona ???
se alguém puder me ajudar …
abs
class Pessoa{
private int id;
private String nome;
private String tipo_pessoa; ///onde pode ser F - Fisica ou J- Juridica
}
class Fisica{
private long id;
private long nrCPF
private long dataInscrição;
}
class Juridica{
private long id;
private long nrCNPJ;
private long dataInscrição;
}
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.SequenceGenerator;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
@Entity
@Table(name=“Pessoa”)
@SequenceGenerator(name=“nome-seq”, sequenceName=“nome-seq”) – se usar sequence
@Inheritance(strategy=InheritanceType.JOINED)
public class Pessoa {
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="nome-seq") -- se usar sequence
@Column(name="id")
private Long id;
@Column(name="nome", length=60)
private String nome;
@Column(name="dataInscricao")
private Date dataInscricao;
....
@Entity
@Table(name=“Fisica”)
@PrimaryKeyJoinColumn(name=“id”)
public class Fisica extends Pessoa {
@Column(name="nrCPF")
private String nrCPF;
...
@Entity
@Table(name=“Juridica”)
@PrimaryKeyJoinColumn(name=“id”)
public class Juridica extends Pessoa {
@Column(name="nrCNPJ")
private String nrCNPJ;
...
A coluna dataInscricao deve ficar na tabela Pessoa.
Espero que tenha ajudado.
Boa Tarde:
Estou iniciando meu aprendizado em JPA e começaram as duvidas. Segui a forma de gerar o @Generatedvalue etc. etc. … ai na minha classe nao estou setando valores para o campo ID. Quando vou persistir o objeto no banco da erro que a chave não pode ser nula. O que tenho q fazer para resolver esse problema?
Grato
um exemplo como estou usando por aki estamos gerando pro banco mysql onde o campo id já é incrementado no mysql …
não sei se vai te ajudar
@Entity
@Table(name="OPERATION")
public class UserOperation{
@Id
@GeneratedValue
@Column(name = "OP_ID")
-- tabela gerada
CREATE TABLE operation(
`OP_ID` bigint(20) NOT NULL auto_increment
PRIMARY KEY (`OP_ID`)
) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=latin1;