Id composto no JPA

Umas das formas de utilizar id(pk) composto no JPA é com EmbeddedId, segue abaixo um exemplo ilustrativo de como implementar o @EmbeddedId.

FuncionarioId.java

import javax.persistence.Embeddable;
import java.io.Serializable;

@Embeddable
public class FuncionarioId {

    private String nome;
    private String sobreNome;

@Embeddable: Define que é uma classe de composição de Ids, ou seja, todos atributos definidos dentro da classe serão considerados como ids.

Funcionario.java

@Entity
public class Funcionario {

    @EmbeddedId
    private FuncionarioId funcionarioId;

    private String email;

@EmbeddedId: Define que o atributo é o id da entidade, dessa forma ele substitui o @Id pelo @EmbeddedId indicando que é um id composto.

script.sql

CREATE TABLE funcionario
(
  nome character varying(255) NOT NULL,
  sobrenome character varying(255) NOT NULL,
  email character varying(255),
  CONSTRAINT funcionario_pkey PRIMARY KEY (nome, sobrenome)
)

Como mencionado acima, todos atributos da classe FuncionarioId serão adicionados a constraint de primary key.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.