Problema com Hibernate/JPA

39 respostas
B

Gente to com um problema aqui com um Hello World com o hibernate/jpa n sei se é incompatibilidade to usando essa
hibernate-annotations-3.3.0.GA
hibernate-entitymanager-3.3.2.GA
hibernate-3.2

e quando tento execultar minha aplicação da esse erro

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.NoSuchMethodError: org.hibernate.cfg.AnnotationConfiguration.addProperties(Ljava/util/Properties;)Lorg/hibernate/cfg/AnnotationConfiguration;
        at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:756)
        at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:191)
        at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:253)
        at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:125)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
        at main.hibernate.GenerateDataBase.main(GenerateDataBase.java:14)

erro acontece quando execulta essa linha

EntityManagerFactory emf = Persistence.createEntityManagerFactory("hibernate");
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
        <persistence-unit name="hibernate">
          <properties>
            <property name="hibernate.hbm2ddl.auto" value="create"/>
            <property name="hibernate.query.substitutions" value="true"/>

            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
            <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/hibernate"/>
            <property name="hibernate.connection.username" value="root"/>
            <property name="hibernate.connection.password" value="senha"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLMDialect"/>
          </properties>
        </persistence-unit>
</persistence>

OBS: adicionei todos jar´s ao meu classpath
THANKS!!!

39 Respostas

F

Parece mesmo incompatibilidade.

Tente colocar os seguintes arquivos (compatíveis com a sua versão):

hibernate3.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
hibernate-entitymanager.jar
hibernate-validator.jar

flws

N

esse erro ocorre pq não foi encontrada uma classe ou uma classe dependente

vc tem que adicionar os jars necessários

ou então atualizar os jars já existentes

B

Certo, mas me tirem uma duvida eu uso o netbeans, la na pasta ext/lib tem um monte de jar e no meu projeto tambem adicionei os jar la!
aonde esta o problema de jar desatualizado na minha jre/ext/lib da pasta java ou no jar adicionado do meu projeto? obrigada mais uma vez

N

O jar desatualizado neste caso, SEMPRE fica na lib do projeto.

B

Qual versao vcs usam tambem pelamordedeu ajudem-me

B

gente eu to perdida n sei se resolvido o problema mas agora deu isso

Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.HibernateException: Dialect class not found: org.hibernate.dialect.MySQLMDialect
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:698)
        at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:121)
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLMDialect"/>
R

Se for MySQL 5 pode usar org.hibernate.dialect.MySQL5Dialect que esta no jar hibernate-core.jar ou hibernate3.jar…

N

Vc tem o jar do mysql connector na sua lib?

R

Na verdade me enganei sobre qual classe estava faltando… Quando falei conector é o driver do banco, ehehe.

O erro é porque a classe que voce esta usando (…MySQLDialect) nao esta sendo encontrada no seu projeto.

Tentei usar a que citei no post anterior.

L

Aconselho não tentar configurar na mão, não vai ganhar nada de valor com isso ^^

use IDE Netbeans, crie um projeto, depois va em

Arquivo > Novo Arquivo > Hibernate > HibernateUtils.java

depois

Arquivo > Novo Arquivo > Hibernate > Arquivo de configuração do Hibernate … clique em next, ate chegar a "Selecione fonte de dados" escolha Nova Conexão com Banco de Dados … em name escolha seu banco, no meu caso é o "MySQL (Connector/J Driver)" o host, que no meu caso é "localhost", na porta não precisa botar nada, a não ser q seu servidor não esteja na porta padrão… Banco de dados = "seuSquemaDeDB" Nome de Usuario = "seuUsuario" Senha = "suaSenha", clica em Lembrar Senha … ai clica em OK…

pronto seu banco vai estar pronto pra usar com hibernate, e tudo configurado, e as bibliotecas ja integradas

N

Não vai ganahar nada de valor mesmo…

vai ganhar conhecimento :wink:

L

n3too:
Não vai ganahar nada de valor mesmo…

vai ganhar conhecimento :wink:

conhecer q versão é compativel com q versão ? ficar horas, tentando configurar ate dar certo ?? … não ha necessidade disso… é o mesmo caso… se existe o sitema de windows (não to falando do sistema operacional, e sim da funcionalidade q se não me engano foi inventada pelo MAC OS), voltando se existe o sistema de Windows pra que usar linha de comando ??

so é necessario recorrer a linha de comando quando o sistema mais amigável não funciona corretamente … sair no DOS fazendo MKDIR, copy … etc etc, ou comandos em qualquer outro sistema é perder tempo, com algo desnecessario…

c a IDE traz a facilidade, c configura tudo pra vc, e se realmente seu objetivo não é aprende o Hibernate 100% e sim usa-lo (onde falo que aprender 100% é ler os SRC, e ver como foi implementado tudo que há nele hoje), afinal ele é uma ferramenta, não vejo motivos de perder tempo com isso…

e se mesmo assim, vc quiser saber como é uma configuração 100% correta, depois é so ele ir nos diretorios e ler o q a IDE fez… desnecessario esse conhecimento da conf, concentre-se em saber as funcionalidades que o hibernate pode te proporcionar, e não em como configurar pra sua aplicação funcionar com ele

B

Joia pessoal vou tentar aqui ve o que eu consigo muito obrigado pela ajuda qualquer problema eu pertubo vcs mais um poquinhu brigadinhu!

B

Lavieri e se eu fizer desta forma ainda tenho que adicionar os jars?

L

o netbeans ja adciona os JARs… ele cria a estrutura toda pronta…

e se quiser distribuir depois, ou seja, executar como um aplicativo… tem la um botão… “Limpar e Construir”, que poem dentro de uma pasta do seu projeto chamada de “dist” um .jar com suas classes, e uma pasta “lib” conténdo todas as bibliotecas que seu projeto usa…

respondendo novamente… não vai ter q adcionar nem um jar não ^^

B
java.lang.ExceptionInInitializerError
Caused by: java.lang.RuntimeException: Uncompilable source code - package javax.persistence does not exist
        at main.hibernate.GenerateDataBase.<clinit>(GenerateDataBase.java:4)
Could not find the main class: main.hibernate.GenerateDataBase.  Program will exit.
Exception in thread "main" 
Exception in thread "main" Java Result: 1
package main.hibernate;

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

public class GenerateDataBase {
    public static void main(String[] args){
       EntityManagerFactory emf = Persistence.createEntityManagerFactory("hibernate");
       EntityManager em = emf.createEntityManager();

       emf.close();
       em.close();
    }
}
L

este problema seu ai, ocorre pq não achou os pacotes, não estão adcioandos…

vc fez o q eu te falei ?? esse erro foi no NetBeans ? depois de seguir os passos q te falei ali ?

B

Entao, eu fis o processo que vc falo e o codigo n compilava, na classe Hibernate.java que no caso é a classe que fis o processo que vc me falou ele pg se eu quero criar a classe SessionFactory e AnnotationConfiguration(), pelo jeito ele n encontra esses metodos

B

Ai adicionei o jar na mao ai ele compilo mas gero aquele erro

L

ali eu falei 2 passos… vc criou o Hibernate.cfg ? tb ??? na segunda parte ?? e nessa hora q ele adciona todos as bibliotecas ^^

tente primeiro fazendo como falei no post anterior… criando o hibernate.cfg… se ainda assim não conseguir…

http://www.guj.com.br/posts/list/121687.java#658423 … segue essa lista ai, q vai do zero, ate a criação de um trecho de código pra manipular uma base de dados… mas antes tenta como falei no post na pagina anterior

B
os imports estao com erro no org.

import org.hibernate.cfg.AnnotationConfiguration;

import org.hibernate.SessionFactory;
B

sim fis o processo corretamente veja

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">senha</property>
  </session-factory>
</hibernate-configuration>
L

veja o passo a passo nessas 7 imagens… como pode ver… o projeto adciona todos os JARS q biblioteca





L

mais 3 passos






L

veja que na ultima imagem a biblioteca é toda criada…



B

Muito obrigado pela sua disposicao e atencao Lavieri, porem eu ja tinha feito isso mesmo que vc falou ele cria os codigos tudo igualzinhu mas simplesmente ele n adiciona nenhuma LIB! criei tudo hibernate.cfg, hibernate.revenge como no outro post seu , criei a main e a hibernateUtil.java mas na HibernateUtil.java ele fala que n existe os imports que estou tentando carregar

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;

e mais uma vez muito obrigada pela sua disposição

L

biluquinha:
Muito obrigado pela sua disposicao e atencao Lavieri, porem eu ja tinha feito isso mesmo que vc falou ele cria os codigos tudo igualzinhu mas simplesmente ele n adiciona nenhuma LIB! criei tudo hibernate.cfg, hibernate.revenge como no outro post seu , criei a main e a hibernateUtil.java mas na HibernateUtil.java ele fala que n existe os imports que estou tentando carregar

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;

e mais uma vez muito obrigada pela sua disposição

qual é seu Netbeans ??? 6.5 ?

B

Sim

L

o.O … tem alguma coisa errada que não esta certa hehehe…

tem algo de estranho com seu hibernate… any way… clica com direito la em bibliotecas e faz conforme as figuras abaixo

com esses passos vc adciona as bibliotecas na mão

L

… veja o post da pagina anterior, mostrando como adcionar as bibliotecas na mão mesmo

Se ainda assim, vc não encontrar as bibliotecas, tente ver se seu netbeans tem o plug-in para o hibernate… ele pode ser encontrado indo em

Ferramentas > Plug-ins

ai tem duas habas… Instalado, Plug-ins disponiveis … vai ter um botão a esquerda, pesquisar: … c vc escrever hibernate em pesquisar, vc encontra o plug-in… não precisa do plug-in para J2EE e WEB, so precisa do JAVA que chama-se "Suporte ao Hibernate"

outra coisa necessária é q o seu netbeans esteja autalizado, ou seja… Atualizações nessa janela de plug-ins não pode ter nada pendente pra baixar…

B

caramba devo ter removido sem querer a biblioteca do meu netbeans pq quando vou la n tem HIBERNATE/JSP para adicionar

B

tem como voltar ao padrao as bibliotecas do meu netbeans?

B

to tentando atualizar o netbeans para ver se volta a biblioteca HIBERNATE

L

Deve ser possivel sim apagar, se tem como restartar ?? resinstala =P …

outra coisa é ir na parte de plug-ins, e fazer os updates ou donwloads de novos plug-ins…

B

Re instalei meu netbeans 6.5 e meu plug in nao voltou continua sem o plug in do Hibernate o que faço? ;~

L

auhaua ta difici em ???

vc instalou qual versão ? da IDE ??

eu baixei essa… http://java.sun.com/javase/downloads/netbeans.html

mas aconselho a baixar a versão full mesmo, depois c vai kerer mexer com mobile, depois com FX, depois com… ai vai ficar tendo q instalar plug-in…

outra coisa q é importante é sempre atualizar o netbeans…

mas não sei pq o seu não veio integrado o.O

G

Estou começando a aprender utilizar o JPA agora e e to com um problema na hora de cadastrar algo no banco, não conssigo utilizar uma sequence pra gerar o id automaticamente no hibernate, o banco de dados que estou utilizando eo postgres

ja tentei utilizar assim, mais ocorre um erro na hora da execução, onde diz que nao existe S_fornecedor mais ja esta criada no banco!!, Se alguem poder me ajudar ficarei grato!!

@Entity

@SequenceGenerator(name=Fid,sequenceName=S_fornecedor)

@Table(name = fornecedor)

@NamedQueries({@NamedQuery(name = Fornecedor.findAll, query = SELECT f FROM Fornecedor f), @NamedQuery(name = Fornecedor.findByForId, query = SELECT f FROM Fornecedor f WHERE f.forId = :forId), @NamedQuery(name = Fornecedor.findByForNome, query = SELECT f FROM Fornecedor f WHERE f.forNome = :forNome), @NamedQuery(name = Fornecedor.findByForCnpj, query = SELECT f FROM Fornecedor f WHERE f.forCnpj = :forCnpj), @NamedQuery(name = Fornecedor.findByForDescricao, query = SELECT f FROM Fornecedor f WHERE f.forDescricao = :forDescricao), @NamedQuery(name = Fornecedor.findByForRazaosocial, query = SELECT f FROM Fornecedor f WHERE f.forRazaosocial = :forRazaosocial), @NamedQuery(name = Fornecedor.findByForTelefone, query = SELECT f FROM Fornecedor f WHERE f.forTelefone = :forTelefone), @NamedQuery(name = Fornecedor.findByForEndereco, query = SELECT f FROM Fornecedor f WHERE f.forEndereco = :forEndereco)})

public class Fornecedor implements Serializable {

private static final long serialVersionUID = 1L;

@Id

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@GeneratedValue( strategy = GenerationType.SEQUENCE, generator = Fid)

@Column(name = for_id)

private Integer forId;
T

Pessoal desculpem por entrar no forum e não colocar nenhuma informação, e que eu tenho que fazer um trabalho igual a esse de autenticação e autorização de usuário, e estou com problema para fazer o mapeamento de ralacionamento entre duas classes. Coloquei os codigos no link abaixo:

http://www.guj.com.br/posts/listByUser/107724.java

Por favor se puderem dar uma olhada e acoselhar algum…!!!

Gustavo…!!!

T

Lavieri desculpe por entrar no forum e não colocar nenhuma informação vi seus comentarios em diversos foruns e queria saber se vc pode me ajudar, e que eu tenho que fazer um trabalho igual a esse de autenticação e autorização de usuário, e estou com problema para fazer o mapeamento de ralacionamento entre duas classes. Coloquei os codigos no link abaixo:

http://www.guj.com.br/posts/listByUser/107724.java

Por favor se pudere dar uma olhada e acoselhar algum…!!!

Gustavo…!!!

Criado 28 de abril de 2009
Ultima resposta 1 de mar. de 2010
Respostas 39
Participantes 7