Duvida no uso Hibernate ....JPA

1 resposta
P

Olá ,

uma duvida estou começando a ver Hibernate e JPA e começou a dar um nó…
Conforme exemplo abaixo tenho dois import de Entity …

Minha duvida qual usar no momento estou em projeto que está no inicio
e o pessoal que quer usar Hibernate mas em contra partida tem JPA ???

O que usar Hibernate com JPA e nesse momento qual importS usar ???

SE ALGUÉM PUDER ME AJUDAR ???

import javax.persistence.Column;

import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.ForeignKey;
import org.hibernate.annotations.Entity;
import javax.persistence.Entity;


@Entity @Table
public class Centro {

	@Id @GeneratedValue(strategy = GenerationType.SEQUENCE)
	@Column(name="id_centro")
	private int id;
	private String nome;
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name="id_universidade",
	insertable=true, updatable=true)
	@Fetch(FetchMode.JOIN)
	@Cascade(CascadeType.SAVE_UPDATE)
	
	@ForeignKey(name="teste")
	private Universidade universidade;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public Universidade getUniversidade() {
		return universidade;
	}
	public void setUniversidade(Universidade universidade) {
		this.universidade = universidade;
	}
	
	
}

1 Resposta

Jair_Rillo_Junior

Esse assunto já foi bem discutido aqui no fórum. Uma rápida busca irá te ajudar.

Deixa eu tentar dar uma visão geral.

O hibernate é um produto, enquanto a JPA é uma especificação.

O hibernate implementa essa especificação (quando você usa o HibernateEntityManager), porém você pode utilizar o Hibernate sozinho (hibernate-core, sem usar a especificação JPA).
Além do hibernate, existem outros vendors que implementam a JPA, como o Toplink (oracle) e OpenJPA (apache).
Uma das vantagens da JPA, que você pode mudar o provider (de Hibernate para Toplink por exemplo) de uma forma transparante.
Uma das vantagens do Hibernate-core, é que ela possuí algumas características que ainda não existem na JPA (como a API de Criteria).

Portanto, você tem que decidir se vai utilizar a especificação JPA ou o framework hibernate (core). Caso opte pela primeira, utilize as anotações do pacote javax.persistence.. Caso utilize apenas o hibernate (não o EntityManager), utilize as anotações do pacote org.hibernate.annotations.

Espero que tenha ficado claro, mas mesmo assim aconselho você estudar mais sobre o assunto e a diferença dos dois

Criado 27 de novembro de 2008
Ultima resposta 27 de nov. de 2008
Respostas 1
Participantes 2