JPA + Eclipse + J2EE

4 respostas
H

Não estou conseguindo utilizar JPA + J2EE no eclipse.

&lt?xml version="1.0" encoding="UTF-8"?&gt
<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
           version="1.0" 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
   
   <persistence-unit name="deliveryJPA" transaction-type="RESOURCE_LOCAL">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		
		<class>br.com.decimal.delivery.pojo.GrupoProduto</class>
		
		<properties>
			<property name="hibernate.archive.autodetection" value="class"/>
			<property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
			<property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/postgres"/>
			<property name="hibernate.connection.username" value="postgres"/>
			<property name="hibernate.connection.password" value="postgres"/>
			<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
			<property name="connection.pool_size" value="2"/>			
		</properties>
	</persistence-unit>
   
 </persistence>

Esse é o meu arquivo persistence.xml , ele está dentro da pasta src/META-INF/persistence.xml.

/*
 * GrupoProduto		06/06/2007
 *
 * (c) 2007 Decimal LTDA.
 * All rights reserved / Todos os direitos reservados.
 *
 */
package br.com.decimal.delivery.pojo;

import java.util.Date;

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

@Entity
@Table(name = "grupo_produto")
public class GrupoProduto {
	
	@Id @GeneratedValue
	@Column(name = "cd_grupo_produto")
	private Long codigoGrupoProduto;
	
	@Column(name = "descricao")
	private String descricao;
	
	@Column(name = "tipo_produto")
	private String tipoProduto;
	
	@Column(name = "dt_cadastro")
	private Date dataCadastro;
	
	@Column(name = "dt_alteracao")
	private Date dataAlteracao;

	public Long getCodigoGrupoProduto() {
		return codigoGrupoProduto;
	}

	public void setCodigoGrupoProduto(Long codigoGrupoProduto) {
		this.codigoGrupoProduto = codigoGrupoProduto;
	}

	public Date getDataAlteracao() {
		return dataAlteracao;
	}

	public void setDataAlteracao(Date dataAlteracao) {
		this.dataAlteracao = dataAlteracao;
	}

	public Date getDataCadastro() {
		return dataCadastro;
	}

	public void setDataCadastro(Date dataCadastro) {
		this.dataCadastro = dataCadastro;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public String getTipoProduto() {
		return tipoProduto;
	}

	public void setTipoProduto(String tipoProduto) {
		this.tipoProduto = tipoProduto;
	}

}

Esse é o meu Pojo , utilizando a anotação do Banco de dados.

/*
 * TesteInsercao		06/06/2007
 *
 * (c) 2007 Decimal LTDA.
 * All rights reserved / Todos os direitos reservados.
 *
 */
package br.com.decimal.delivery.teste;

import java.util.Date;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;

import br.com.decimal.delivery.pojo.GrupoProduto;

/**
 * @author Vitor Hugo Brito de Oliveira
 *
 */
public class TesteInsercao {
	
	public void executar() {

		// Start EntityManagerFactory
		EntityManagerFactory emf = Persistence.createEntityManagerFactory("deliveryJPA");

		// First unit of work
		EntityManager em = emf.createEntityManager();
		EntityTransaction tx = em.getTransaction();
		
		tx.begin();
		GrupoProduto grupoProduto = new GrupoProduto();		
		grupoProduto.setDescricao("Representa as bebidas.");
		grupoProduto.setTipoProduto("Bebida");
		grupoProduto.setDataCadastro(new Date());
			
		em.persist(grupoProduto);
		tx.commit();
		em.close();
		

		// Second unit of work
		EntityManager newEm = emf.createEntityManager();
		EntityTransaction newTx = newEm.getTransaction();
		newTx.begin();
		List messages = newEm.createQuery("select m from GrupoProduto").getResultList();
		System.out.println( messages.size() + " message(s) found" );
		for (Object m : messages) {
			GrupoProduto loadedMsg = (GrupoProduto) m;
			System.out.println(loadedMsg.getDescricao());
		}
		newTx.commit();
		newEm.close();
		
		// Shutting down the application
		emf.close();
	}
	
	public static void main(String[] args) {
		TesteInsercao t = new TesteInsercao();
		t.executar();
	}
}

Esse é o código que efetua a inserção no banco de dados. Quando executo este ultimo código ele me retorna essa mensagem de erro.

Será que alguem já passou por isto e poderia me ajudar.

4 Respostas

eduardo.carvalho

Hugov, pelo erro q esta dando, sua consulta parece esta retornando null … verifica aih…

H

Não está nem conectando troquei de Provider. E olha o erro que está aparecendo.

kissdemon

Colega,

a CAELUM publicou em seu BLOG, um Screencast de 35 minutos sobre JPA com Hibernate no Eclipse. De uma ulhada pois vale apena e poderá sanar suas dúvidas. Segue o link:
http://blog.caelum.com.br/2007/05/15/screencast-primeiros-passos-para-a-jpa/

[]´s

Carlos

H

O erro que estava acontecendo comigo era a falta de um jar do HibernateEntityManager , com o download deste jar passou a funcionar.

Obrigado pela ajuda.

Criado 11 de junho de 2007
Ultima resposta 11 de jun. de 2007
Respostas 4
Participantes 3