1
resposta

Como Persistir SubClasses.

Olá!! Gostaria de saber como faço para persistir uma classe herdada de outra? Exemplo: Uma Classe Pai denominada cliente, e duas subclasses, chamadas (ClienteFisico e ClienteJuridico). Segue abaixo o código das minhas classes.

package br.com.sgos.classes;

import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id;

import lombok.Data;

@Data public class Cliente {

@Id
@Column (name = "idCliente")
@GeneratedValue (strategy = GenerationType.IDENTITY)
private Long idCliente;

@Column (name = "tipoCliente")
private String tipoCliente;

@Column (name = "nomeCliente")
private String nomeCliente;

@Column (name = "endCliente")
private String endCliente;

@Column (name = "compCliente")
private String compCliente;

@Column (name = "nCliente")
private int nCliente;

@Column (name = "bairroCliente")
private String bairroCliente;

@Column (name = "cidadeCliente")
private String cidadeCliente;

@Column (name = "ufCliente")
private String ufCliente;

@Column (name = "cepCliente")
private String cepCliente;

@Column (name = "telCliente")
private String telCliente;

@Column (name = "celCliente")
private String celCliente;

@Column (name = "whatsappCliente")
private String whatsappCliente;

@Column (name = "emailCliente")
private String emailCliente;    

}

package br.com.sgos.classes;

import javax.persistence.Column;

import lombok.Data;

@Data public class ClienteFisico extends Cliente {

@Column(name = "cpfCliente")
private String cpfCliente;

@Column (name = "rgCliente")
private String rgCliente;

}

package br.com.sgos.dao;

import javax.persistence.EntityManager;

import br.com.sgos.classes.Cliente; import br.com.sgos.util.ManagerFactory;

public class ClienteFisicoDao {

private static EntityManager em = ManagerFactory.getEntityManager();

public void salvar(Cliente clienteFisico) {

    em.getTransaction().begin();
    em.persist(clienteFisico);
    em.getTransaction().commit();

}

}

1 resposta

Oi Bruno,

No segundo curso de JPA a última aula trata do assunto de mapeamento de herança na JPA: https://cursos.alura.com.br/course/java-jpa-consultas-avancadas-performance-modelos-complexos

Bons estudos!