Problema em rodar "ola mundo" com hibernate

1 resposta
G

Olá a todos,

Estou iniciando o uso do Hibernate e estou tendo uns problemas. Primeiro eu criei uma classe simples chamada Usuario e tambem fiz o mapeamento. Depois criei a classes HibernateUtil assim como na referencia do hibernate 3.0


package br.com.ebrand.util;

import org.hibernate.<em>;

import org.hibernate.cfg.</em>;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

public class HibernateUtil {

private static Log log = LogFactory.getLog(HibernateUtil.class);

private static final SessionFactory sessionFactory;

static {
    try {
        // Create the SessionFactory
        sessionFactory = new Configuration().configure().buildSessionFactory();
    } catch (Throwable ex) {
        // Make sure you log the exception, as it might be swallowed
        log.error("Initial SessionFactory creation failed.", ex);
        throw new ExceptionInInitializerError(ex);
    }
}

public static final ThreadLocal session = new ThreadLocal();

public static Session currentSession() {
    Session s = (Session) session.get();
    // Open a new Session, if this Thread has none yet
    if (s == null) {
        s = sessionFactory.openSession();
        session.set(s);
    }
    return s;
}

public static void closeSession() {
    Session s = (Session) session.get();
    if (s != null)
        s.close();
    session.set(null);
}

}


Depois de compilar minhas classes eu criei um arquivo teste.jsp para testar o hibernate, assim:


<%@ page import=org.hibernate.<em>"  %>

<%@ page import="org.hibernate.cfg.</em>” %>

<%@ page import=br.com.ebrand.util.HibernateUtil %>

<%@ page import=br.com.ebrand.Usuario %>
<%

Session session = HibernateUtil.currentSession();

Transaction tx = session.beginTransaction();

Usuario usr = new Usuario();

usr.setNome(Anderson);

usr.setEmail(<a>"[email removido]</a>");

usr.setLogin(anderson);

usr.setSenha(123456);

session.save(usr);

tx.commit();

HibernateUtil.closeSession();

%>

Só q quando rodo pelo JBuilder o teste.jsp ocorre o seguinte erro:
“teste.jsp”: session is already defined in _jspService(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)

Não estou entendendo esse erro, se alguem puder me ajudar fico grato.


Mais uma pergunta basica sobre o Hibrnate. Eu vou usar um banco SQL Server, logo no arquivo hibernate.properties descomentei as linhas:

MS SQL Server

hibernate.dialect net.sf.hibernate.dialect.SQLServerDialect
hibernate.connection.username sa
hibernate.connection.password

só q a duvida é de onde eu coloco o nome do banco q vai ser utilizado.???

Anderson

1 Resposta

R

Caro amigo… estive procurando como fazer consultas no hibernate SELECT pois sou novo com o hibernate, mas já tive este problema de a variável session já existir. Eu notei que já existia a variável pois a criei quando instanciei HttpSession para guardar a sessâo do usuário. Modifiquei a minha variavel session do hibernate para hibsession e resolvi o problema. Espero que ajude.

Por acaso você tem um dicionário de acesso ao hibernate? tipo: select, join, etc.

Abraços…

Criado 17 de abril de 2005
Ultima resposta 18 de abr. de 2005
Respostas 1
Participantes 2