Fala gente boa.
Estou fazendo um aplicativo local em java com Hibernate, só estou querendo usar JPA e Hirbernate, mas estou recebendo o seguinte erro:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Exception occurred during event dispatching:
javax.persistence.PersistenceException: [PersistenceUnit: JPAHibernate] Unable to build EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
at cliente.DaoCliente.addCliente(DaoCliente.java:16)
Tem mais linhas de erro depois dessa, mas pra não ficar muito grande só vou colocar até aí.
Meu arquivo persistence.xml está no META-INF dentro do src.
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http//java.sun.com/xml/ns/persistence" version="1.0" >
<persistence-unit name="JPAHibernate" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<non-jta-data-source>jdbc/clienteHibernate</non-jta-data-source>
<class>cliente.Cliente</class>
<properties>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
<property name="hibernate.connection.driver_class" value="net.sourceforge.jtds.jdbc.Driver" />
<property name="hibernate.connection.url" value="jdbc:jtds:sqlserver://127.0.0.1:1433/clienteHibernate" />
<property name="hibernate.connection.username" value="clienteHibernate" />
<property name="hibernate.connection.password" value="clienteHibernate16" />
</properties>
</persistence-unit>
</persistence>
Minha Entity:
package cliente;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "cliente")
public class Cliente implements Serializable{
private static final long serialVersionUID = -2721501264755916247L;
@Column(name="nome", length = 30, nullable=false)
private String nome;
@Column(name="endereco",length = 60, nullable=false)
private String endereco;
@Column(name="telefone",length = 10, nullable=false)
private String telefone;
@Id
@Column(name="cod")
private int cod;
public Cliente() {
}//fim construtor
//Métodos getters e setters
public int getCod() {
return cod;
}
public void setCod(int cod) {
this.cod = cod;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
}
Controle:
Cliente cliente = new Cliente();
cliente.setNome(FCliente.tNome.getText());
cliente.setEndereco(FCliente.tEndereco.getText());
cliente.setTelefone(FCliente.tTelefone.getText());
DaoCliente daoCliente = new DaoCliente();
daoCliente.addCliente(cliente);
DaoCliente:
package cliente;
import javax.ejb.Stateless;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceContext;
import javax.persistence.EntityManager;
import javax.persistence.Query;
public class DaoCliente {
@PersistenceContext
private EntityManager manager;
EntityManagerFactory factory;
public void addCliente(Cliente cliente){
factory = Persistence.createEntityManagerFactory("JPAHibernate");
manager = factory.createEntityManager();
manager.persist(cliente);
manager.close();
}//fim do método addCliente
}//fim da classe
Vi varios tutoriais no internet então consegui montar(acho) os jars. na versão certa.
baixei os últimos reliases (3.4.x) do hibernate.
Estou usando SQLServer 2000, consigo fazer tudo normalmente sem hibernate.
Qualquer ajuda eu agradeço, to querendo usar hibernate no meu projeto final.
Valeu gente boa.