Java y Hinbernate

Iniciado por olve, 3 Mayo 2010, 03:35 AM

0 Miembros y 1 Visitante están viendo este tema.

olve

Hola,

Podrian porporcinarme un ejemplo simple o de done teber  informacion  para hacer un ejemplo

espero me puedan orientar.

Gracias, Saludos


olve

Hola,

Ya hice el ejemplo pero me marca error en la clase (Ejemplo1) las parte subrayada.

Me presenta este error "The method getCurrentSession() is undefined for the type"


Esperando me puedas  ayudar.

Muchas gracias y saludos.




private Long createAndStoreEvent(String title, Date theDate) {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Event theEvent = new Event();
        theEvent.setTitle(title);
        theEvent.setDate(theDate);
        session.save(theEvent);
        session.getTransaction().commit();        log.info("Insertado: "+theEvent);
        return theEvent.getId();
    }

    private List<Event> listEvents() {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        List<Event> result = (List<Event>)session.createQuery("from Event").list();
        session.getTransaction().commit();
        for (Event evento : result) {
            log.info("Leido: "+evento);
        }
        return result;
    }



**********

package com.chuidiang.ejemplos.hibernate.ejemplo1;

import java.io.*;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.Session;

public class HibernateUtil {
    private static final SessionFactory sessionFactory;
    static {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            sessionFactory = new Configuration().configure(new File("hibernate1.cfg.xml")).buildSessionFactory();
           
        } catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory()
    {
        return sessionFactory;
    }
}





Chuidiang

¿Error al compilar o al ejecutar?

Teóricamente, HibernateUtil.getSessionFactory() devuelve un SessionFactory que sí tiene el método getCurrentSession()

http://ajava.org/online/hibernate3api/org/hibernate/SessionFactory.html

Revisa que los import están bien y no estás cogiendo un SessionFactory de otro sitio que no sea hibernate, revisa también que los números de versión de los jar son los mismos que los del ejemplo que te he pasado, si no lo son, busca los métodos equivalentes.

Se bueno.

olve

Hola,

Ya cheque la version delos jar eso era. Como lo corro para probarlo  me manda este error.




Saludos y gracias de nuevo 



ava.lang.UnsupportedClassVersionError: Bad version number in .class file
   at java.lang.ClassLoader.defineClass1(Native Method)
   at java.lang.ClassLoader.defineClass(Unknown Source)
   at java.security.SecureClassLoader.defineClass(Unknown Source)
   at java.net.URLClassLoader.defineClass(Unknown Source)
   at java.net.URLClassLoader.access$100(Unknown Source)
   at java.net.URLClassLoader$1.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Exception in thread "main"



Chuidiang

Ese error sale cuando uno de los jar está compilado con una versión de java más moderna que la que tú tienes. Lo mejor es que te actualices a un java más moderno, o bien busca esa versión de jar compilada por un java más antiguo.

Se bueno.

olve

Hola,


Listo ya esta pero ahora me manda este error
algo esta mal pero no se q es

Gracias, Saludos 


la estructura del proyecto
http://img88.imageshack.us/img88/6669/27378346.jpg




Initial SessionFactory creation failed.org.hibernate.MappingNotFoundException: resource: com/chuidiang/ejemplos/hibernate/ejemplo1/hibernate1.cfg.xml not found
Exception in thread "main" java.lang.ExceptionInInitializerError
   at com.chuidiang.ejemplos.hibernate.ejemplo1.HibernateUtil.<clinit>(HibernateUtil.java:18)
   at com.chuidiang.ejemplos.ejemplo1.hibernate.Ejemplo1.createAndStoreEvent(Ejemplo1.java:33)
   at com.chuidiang.ejemplos.ejemplo1.hibernate.Ejemplo1.<init>(Ejemplo1.java:27)
   at com.chuidiang.ejemplos.ejemplo1.hibernate.Ejemplo1.main(Ejemplo1.java:23)
Caused by: org.hibernate.MappingNotFoundException: resource: com/chuidiang/ejemplos/hibernate/ejemplo1/hibernate1.cfg.xml not found
   at org.hibernate.cfg.Configuration.addResource(Configuration.java:596)
   at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1621)
   at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1589)
   at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1568)
   at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1542)
   at org.hibernate.cfg.Configuration.configure(Configuration.java:1496)
   at com.chuidiang.ejemplos.hibernate.ejemplo1.HibernateUtil.<clinit>(HibernateUtil.java:13)
   ... 3 more

Chuidiang

Revisa que en HibernateUtil.java está bien esta línea

Código (java) [Seleccionar]
sessionFactory = new Configuration().configure(new File("hibernate1.cfg.xml"))
                    .buildSessionFactory();


parece que está buscando el fichero en otro sitio.

olve


ya verifique la linea y es identica a la q me envias me sigue envianso el mismo error


si esta bie la estructura de mi proyecto ??

Chuidiang

Pues algo hay mal, porque en el error que muestras no está buscando el fichero en el raíz, sino aquí

Caused by: org.hibernate.MappingNotFoundException: resource: com/chuidiang/ejemplos/hibernate/ejemplo1/hibernate1.cfg.xml

y supuestamente ese path está en HibernateUtil.java, línea 13, según la misma traza de error.

La estructrua de proyecto parece que está bien en la foto. Prueba a copiar también el fichero hibernate1.cfg.xml en el sitio que lo está buscando, pero lo ideal sería ver por qué lo está buscando ahí.

Se bueno.