Você está na página 1de 4

orm trnasformar informações deum banco de dados, que estão no modelo relacional

para classes java.

o livro jsf sao constituidos de modulos independentes.

para implement\ção é necessaprio a utilização do pacote javax.persistence.*

<exclude-unlisted-classes> exclui as pastas nao utilizadas

<class> mapeia as entidades presentes no persistence unit

<entity class="com.uaihebert.model.Pessoa">
<attributes>
<basic name="nome">
<column name="nome_pessoa"/>
</basic>
</attributes>

no xml

@Table(name = "tb_music_2421638")
antes da class depois do entity name="nme do bd"
toda classe no hibernate deve seguir esse passos
Deve ser anotada com @Entity;
• Deve ter um campo definido que representa a chave primária da tabela, anotado com
@Id;
• Deve ter um construtor público sem parâmetros.

@Basic(optional = false) campos obrigatorio


@Column(name = "NM_MUSICA", length = 100, unique = true)
para trocar parametros do banco de dados

reflitira no bd
@Entity(name = "MinhaEntity")

@TableGenerator(name= Musica.IDS_TABLE_NAME,
table="tabela_de_ids",
pkColumnName="tabela",
pkColumnValue="musica_id",
valueColumnName="id_atual"

private String nome;


public MusicaId(){ }
public MusicaId(int duracaoSegundos, String nome) {
super();
this.duracaoSegundos = duracaoSegundos;
this.nome = nome;
}
// hashCode e equals
}

@Entity
public class Musica implements Serializable {
@Id
@OneToOne
@JoinColumn(name = "codigo_id")
private CodigoUnico codigoUnico;
// getters e setters
}

@Entity
@Table(name="MUSICA")
@SecondaryTable(
name="MUSICA_2372",
pkJoinColumns={@PrimaryKeyJoinColumn(name="MUSICA_ID")}
)

@Column(table = "TABELA_X")
private String nome;

mapeando herança jpa

uti.iza uma unica entity para a relacao

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "pertence_a_classe")
public abstract class Pessoa {
@Id
@GeneratedValue
private int id;
private String nome;
}

@Entity
@DiscriminatorValue("PessoaJuridica")
public class PessoaJuridica extends Pessoa{
private String CNPJ;
// outras coisas
}
import javax.persistence.*;
@Entity
@DiscriminatorValue("PessoaFisica")
public class PessoaFisica extends Pessoa{
private String CPF;
// outras coisas
}

utiliza duas tabelas.. uma para cada entity

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Pessoa { ... }
@Entity
public class PessoaFisica extends Pessoa { ... }
@Entity
public class PessoaJuridica extends Pessoa { ... }

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Pessoa { ... }

@Entity
public class PessoaFisica extends Pessoa{ ... }
@Entity
public class PessoaJuridica extends Pessoa{ ... }

mapeando relacionamentos

relacionaento onetoone

@Entity
public class Pessoa {
@Id
private id;
private nome;
@OneToOne
private Endereco endereco;
// get and set
}
@Entity
public class Endereco {
@Id
private id;
private String nomeRua;
}

@OneToOne
@JoinColumn(name = "chave_do_endereco")

@Entity
public class Pessoa{
// outras informações
@OneToMany
private List<Cachorro> cachorros;
}
@Entity
public class Pessoa{
// outras informações
@OneToMany
@JoinColumn(name = "pessoa_id")
private List<Cachorro> cachorros;
}
@Entity
public class Cachorro {
@Id
@GeneratedValue
private int id;
private String nome;
@ManyToOne
@JoinColumn(name = "pessoa_id")
private Pessoa pessoa;
}

@Entity
public class Pessoa {
// outras coisas
@OneToMany(mappedBy = "pessoa")
private List<Cachorro> cachorros;
}

many to many

@Entity
public class Pessoa{
// outras informações
@ManyToMany
@JoinTable(name = "trabalhos_pessoas")
private List<Trabalho> trabalhos;
}

@Entity
public class Trabalho {
@Id
@GeneratedValue
private int id;
private String nome;
@ManyToMany(mappedBy = "trabalhos")
private List<Pessoa> funcionarios;
// get and set
}

CascadeType.PERSIST – disparado toda vez que uma nova entity for inserida no banco
de dados pelo comando: entityManager.persist();
• CascadeType.DETACH – disparado toda vez que uma entity é retirada

Você também pode gostar