Olá pessoal, estou tentando fazer um projeto com o hibernate, mas não tenho costume com o referido. De cara, já tomei um "Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named projeto".
Tenho experiencia com toplink, então creio não ser tãao imensa a diferença.
Eis o persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="projeto" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>br.com.projeto.modelo.Item</class>
<class>br.com.projeto.modelo.Cotacao</class>
<class>br.com.projeto.modelo.Produto</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/projeto" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="" />
<property name="hibernate.hbm2dll.auto" value="create-drop" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
</properties>
</persistence-unit>
</persistence>
Já revisei mto esse persistence para saber se foi erro de digitação ou algo do gênero, creio que não seja isso.
O jar do mysql consta no lib.
Os jars do Hibernate constam no lib.
O meu JPAUtil:
package br.com.projeto.dao;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class JPAUtil {
private static EntityManagerFactory emf = Persistence.createEntityManagerFactory("projeto");
public EntityManager getEntityManager() {
return JPAUtil.emf.createEntityManager();
}
}
Isso não alterou do toplink, creio estar correto.
O meu produtoBean:
package br.com.projeto.mb;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ManagedBean;
import br.com.projeto.dao.DAO;
import br.com.projeto.modelo.Produto;
@ManagedBean
@RequestScoped
public class ProdutoBean {
private Produto produto = new Produto();
public Produto getProduto() {
return produto;
}
public void setProduto(Produto produto) {
this.produto = produto;
}
public void novo() {
DAO<Produto> dao = new DAO<Produto>(Produto.class);
dao.adiciona(this.produto);
this.produto = new Produto();
}
}
Creio também que não houve mistérios aí, pelomenos não algum que eu possa ter notado.
Para testar a classe, criei um main simples tentando adicionar o produto à base:
import br.com.projeto.mb.ProdutoBean;
import br.com.projeto.modelo.Produto;
public class Teste {
public static void main(String[] args) {
Produto p = new Produto();
p.setDescricao("Descrição do produto 1");
p.setNome("Produto 1");
p.setPreco(13.4);
ProdutoBean pb = new ProdutoBean();
pb.setProduto(p);
pb.novo();
}
}
agradeço a ajuda