Duvida Hibernate

14 respostas
rodrigo.fai

Alguém sabe me dizer se preciso criar um arquivo .hbm.xml p/ kda classe persistente mesmo utilizando Hibernate Annotations?

14 Respostas

rafaelglauber

ou usa anotação ou usa xml

blackout

[2]

rodrigo.fai

pode cre…

foi oq pensei!!!
eh que da dano um erro no meu projeto q não sei mais oq pode c viu!!! Pensei q poderia c a falta destes arquivos .hbm.xml… Ja q estou usando Annotations, não precisa.

O erro q ta dando eh:

Sabe oq que pode c? To començando com Hibernate agora q não sei muito oq fazer!!!

Vlw.

blackout

Parece que não está conseguindo conexão com o banco de dados.

Reveja se sua conexão está funcionando. Pode ser que não tenha nada a ver com o Hibernate.
Apenas está dizendo que não pode executar a query por esse motivo.

rodrigo.fai

blackout:
Parece que não está conseguindo conexão com o banco de dados.

Reveja se sua conexão está funcionando. Pode ser que não tenha nada a ver com o Hibernate.
Apenas está dizendo que não pode executar a query por esse motivo.

intao…

eh uma aplicação web que estou tentando por p/ rodar, e nao sei c precisa ser feita uma config. adicional p/ funcionar corretamente… pensei na possibilidade d o container não estar conseguindo fazer a conexao com o banco!!!

criei um topico recentemente esplicando mais detalhadamente o meu problema! c poder dar uma olhada…

http://www.guj.com.br/posts/list/85875.java

detalhe: estou usando aquele plugin do hibernate p/ eclipse e nao sei c ele eh a causa deste erros, pq ouvi fala q sempre da bug quando eh utilizado…

rodrigo.fai

:!:

paulo.ubuntu

Faz o seguinte… posta o seus hibernate.cfg.xml… pra gente pelos menos te dar uma direção do que pode ser.

e posta tambem qual banco se ta usando…
e os jars que estão no seu container web.

assim agente consegue te ajudar

rodrigo.fai
paulo.ubuntu:
Faz o seguinte... posta o seus hibernate.cfg.xml.. pra gente pelos menos te dar uma direção do que pode ser.

e posta tambem qual banco se ta usando....
e os jars que estão no seu container web.

assim agente consegue te ajudar

hibernate.cfg.xml:

<?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.connection.driver_class">org.firebirdsql.jdbc.FBDriver</property>
        <property name="hibernate.connection.password">masterkey</property>
        <property name="hibernate.connection.url">jdbc:firebirdsql://localhost:3050/C:/Arquivos de programas/TSDA/Sistema ZEUS/ZEUS.GDB</property>
        <property name="hibernate.connection.username">sysdba</property>
        <property name="hibernate.dialect">org.hibernate.dialect.InterbaseDialect</property>
        
        <mapping class="net.sytes.tsda.zeuswebserver.bean.Abrigo"/>
        <mapping class="net.sytes.tsda.zeuswebserver.bean.LogSistema"/>
        <mapping class="net.sytes.tsda.zeuswebserver.bean.Remota"/>
        <mapping class="net.sytes.tsda.zeuswebserver.bean.UltimoAcesso"/>
        <mapping class="net.sytes.tsda.zeuswebserver.bean.Usuario"/>
    </session-factory>
</hibernate-configuration>

to usando o firebird como banco de dados!!!

Os jars sao:

hibernate:

ehcache-1.1.jar
jta.jar
xml-apis.jar
commons-logging-1.0.4.jar
c3p0-0.8.5.2.jar
asm-attrs.jar
log4j-1.2.9.jar
dom4j-1.6.jar
antlr-2.7.5H3.jar
cglib-2.1.jar
asm.jar
jdbc2_0-stdext.jar
jaxen-1.1-beta-7.jar
xerces-2.6.2.jar
hibernate3.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
ejb3-persistence.jar
commons-collections-2.1.1.jar

driver firebird:

firebirdsql-full.jar
struts2:
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.6.jar
xwork-2.0.1.jar
paulo.ubuntu

Ueeeee javascript:emoticon(’:shock:’); :-o javascript:emoticon(’:shock:’);
No teórico … está tudo certo …!!!

Faz o seguinte… quando voce vai subir o programa… me passa o log que ele solta…
porque pode ser que o Hibernate num ta achando a configuração do hibernate-cfg.xml

isso já aconteceu comigo

ou tenta assim que vai te matar a dúvida…
tenta conectar por jdbc normalmente…(pela classe eu digo)… se conecta…é quase 90 % que seja que o hibernate não encontra a configuração

mas em todo caso fico no aguardo do seu log beleza?

Abraços

rodrigo.fai

paulo.ubuntu:
Ueeeee javascript:emoticon(’:shock:’); :-o javascript:emoticon(’:shock:’);
No teórico … está tudo certo …!!!

Faz o seguinte… quando voce vai subir o programa… me passa o log que ele solta…
porque pode ser que o Hibernate num ta achando a configuração do hibernate-cfg.xml

isso já aconteceu comigo

ou tenta assim que vai te matar a dúvida…
tenta conectar por jdbc normalmente…(pela classe eu digo)… se conecta…é quase 90 % que seja que o hibernate não encontra a configuração

mas em todo caso fico no aguardo do seu log beleza?

Abraços

Eai kra, blz?

intao… quando do um run on server eh exibida varias msns no meu console!!! Tem 2 linhas que são de log, mas nao sei c eh oq vc quer verificar!

Veja:

log4j:WARN No appenders could be found for logger (org.apache.catalina.session.ManagerBase).
log4j:WARN Please initialize the log4j system properly.

mas em todo o caso vou postar todas as msgs:

28/03/2008 10:48:50 org.apache.catalina.core.AprLifecycleListener lifecycleEvent INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Arquivos de programas\Java\jre1.5.0_06\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\Arquivos de programas\Java\jre1.5.0_06\bin\client;C:\Arquivos de programas\Java\jre1.5.0_06\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem; 28/03/2008 10:48:50 org.apache.coyote.http11.Http11BaseProtocol init INFO: Initializing Coyote HTTP/1.1 on http-8080 28/03/2008 10:48:50 org.apache.catalina.startup.Catalina load INFO: Initialization processed in 718 ms 28/03/2008 10:48:50 org.apache.catalina.core.StandardService start INFO: Starting service Catalina 28/03/2008 10:48:50 org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/5.5.15 28/03/2008 10:48:50 org.apache.catalina.core.StandardHost start INFO: XML validation disabled 28/03/2008 10:48:50 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register INFO: Parsing configuration file [struts-default.xml] 28/03/2008 10:48:51 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register INFO: Parsing configuration file [struts-plugin.xml] 28/03/2008 10:48:51 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register INFO: Parsing configuration file [struts.xml] 28/03/2008 10:48:51 org.apache.struts2.config.Settings getLocale WARNING: Settings: Could not parse struts.locale setting, substituting default VM locale 28/03/2008 10:48:51 com.opensymphony.xwork2.util.ObjectTypeDeterminerFactory <clinit> INFO: Detected GenericsObjectTypeDeterminer, initializing it... 28/03/2008 10:48:51 com.opensymphony.xwork2.util.XWorkConverter getInstance INFO: Detected AnnotationXWorkConverter, initializing it... log4j:WARN No appenders could be found for logger (org.apache.catalina.session.ManagerBase). log4j:WARN Please initialize the log4j system properly. 28/03/2008 10:48:52 org.apache.coyote.http11.Http11BaseProtocol start INFO: Starting Coyote HTTP/1.1 on http-8080 28/03/2008 10:48:52 org.apache.jk.common.ChannelSocket init INFO: JK: ajp13 listening on /0.0.0.0:8009 28/03/2008 10:48:52 org.apache.jk.server.JkMain start INFO: Jk running ID=0 time=0/31 config=null 28/03/2008 10:48:52 org.apache.catalina.storeconfig.StoreLoader load INFO: Find registry server-registry.xml at classpath resource 28/03/2008 10:48:53 org.apache.catalina.startup.Catalina start INFO: Server startup in 2719 ms

Por jdbc funciona normalmente pq já tinha feito este msm projeto sem hibernate…

Vlw por continuar me ajudando!!!

rodrigo.fai

Eu fiz um teste aqui e parece que deu certo, pelo menos meio certo!

Estava usando a anotação @Entity do pacote javax.persistence na minha bean Usuario. Passei a usar esta mesma anotação mas do pacote org.hibernate.annotations.
A mensagem de erro anterior de “Could not execute query” nao foi exibida mais, porem ainda nao esta fuincionando como deveria!!! Efetuo o login com um usuario válido e ainda nao sou autenticado com devia! Sou redirecionado p/ a pagina de usuario invalido!!!

Ainda acho q falta alguma coisa, um detalhe p/ que o hibernate funcione corretamente…

Vc chegou a analizar o outro topico que criei??? o link esta mais a cima!!!

paulo.ubuntu

Então cara… olhando no seu lOg ai em cima… não vi nenhuma atuação hibernate

como voce disse parece que funcionou entre “” …

agora passa o teu código que voce ta usando pra executar

vamos ver o que ta errado no Codigo

rodrigo.fai
paulo.ubuntu:
Então cara... olhando no seu lOg ai em cima... não vi nenhuma atuação hibernate

como voce disse parece que funcionou entre "" ...

agora passa o teu código que voce ta usando pra executar

vamos ver o que ta errado no Codigo

intao... abaixo ta o codigo da classe responsavel pela configuracao do hibernate:

HibernateUtil.java:

package net.sytes.tsda.zeuswebserver.util;

import net.sytes.tsda.zeuswebserver.bean.*;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaUpdate;

public class HibernateUtil
{
	private static SessionFactory sessionFactory;

	static
	{
		initFactory();
	}
	
	private static void initFactory() 
	{
		try
		{
			AnnotationConfiguration annotationConfiguration = new AnnotationConfiguration();
			loadClasses(annotationConfiguration);
			annotationConfiguration.configure();
			
			new SchemaUpdate(annotationConfiguration).execute(false, true);
			
			sessionFactory = annotationConfiguration.buildSessionFactory();
		}
		catch (HibernateException e) 
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
			sessionFactory = null;
		}
	}
	
	private static void loadClasses(AnnotationConfiguration annotationConfiguration)
	{
		annotationConfiguration.addAnnotatedClass(Abrigo.class);
		annotationConfiguration.addAnnotatedClass(LogSistema.class);
		annotationConfiguration.addAnnotatedClass(Remota.class);
		annotationConfiguration.addAnnotatedClass(UltimoAcesso.class);
		annotationConfiguration.addAnnotatedClass(Usuario.class);
	}
	
	public static Session getSession()
	{
		if(sessionFactory == null)
			initFactory();
		
		return sessionFactory.openSession();
	}
}

codigo da consulta:

public boolean procura(Usuario usuario)
{
	List<Usuario> list = null;
	
	try
	{
		this.daoFactory.beginTransaction();
		list = this.daoFactory.getUsuarioDao().existeUnico(usuario);
		this.daoFactory.commit();
		this.daoFactory.closeSession();
	}
	catch(Exception e)
	{
		this.daoFactory.rollback();
		System.out.println(e);
	}
	
	if(!list.isEmpty())
	    return true;
	else
		return false;
}
public List<Usuario> existeUnico(Usuario usuario)
{
	Criteria criteria = getSession().createCriteria(Usuario.class);
	criteria.add(Restrictions.eq("nome", usuario.getNome()));
	criteria.add(Restrictions.eq("senha", usuario.getSenha()));
	List<Usuario> list = criteria.list();
	
	return list;
}

a tabela Usuarios esta com a seguinte estrutura:

TABLE USUARIOS (
    INDICE INTEGER NOT NULL,
    NOME VARCHAR(20),
    SENHA VARCHAR(20),
    FLAGS INTEGER)

de uma olhada p/ v c a minha classe bean Usuario está anotada de acordo com a tabela:

package net.sytes.tsda.zeuswebserver.bean;

import javax.persistence.*;

import org.hibernate.annotations.Entity;

@Entity
@Table(name="usuarios", schema="anotacoes")
public class Usuario 
{
	@Id
	private int indice;
	private String nome;
	private String senha;

	public final int getIndice() 
	{
		return indice;
	}

	public final void setIndice(int indice) 
	{
		this.indice = indice;
	}
	
	public final String getNome() 
	{
		return nome;
	}
	
	public final void setNome(String nome) 
	{
		this.nome = nome;
	}
	
	public final String getSenha() 
	{
		return senha;
	}
	
	public final void setSenha(String senha) 
	{
		this.senha = senha;
	}
}

To achano estranho pq eh retornado null p/ minha lista de usuarios! eh como c nao achasse o usuario logado!!!

rodrigo.fai

consegui resolver meu problema!!! Aleluia…

note que na minha classe bean Usuario eu utilizava a anotação @Table com a propriedade schema=“anotacoes”. Eu retirei esta propriedade e deixei somente @Table(name=“aluno”)!!! Funcionou normalmente!!!

gostaria agora de criar um mecanismo q verificasse se o usuário esta ou nao logado no sistema antes de exibir as demais paginas… qual seria a melhor maneira de se criar isto???

Criado 27 de março de 2008
Ultima resposta 31 de mar. de 2008
Respostas 14
Participantes 4