En la página principal de los foros
encontrarás los enlaces al
feed general
y al de cada uno de los foros.
Subscribete para mantenerte informado de los cambios y responde a las dudas siempre que te sea posible
Todos nuestros clientes son la afirmación que la calidad y e ...
@greeneyed: es cierto, he utilizado mal los términos. Lo que ...
Yo siempre había utilizado MySQL, pero mysql tiene una licen ...
Buenas! Soy un novato en Java. Yo siempre había utilizado My ...
Gracias anonymous por tu ayuda.
| Problema con multiples sessionFactory | 31/10/2008 11:40 | |
| diegolo69 |
Buenas, hace unos días comente un problema que tuve con hibernate + web service http://www.javahispano.org/forum/persistencia/es/hibernate__ web_service__se_bloquea_al_enviar/ , iba a comentar la solución que encontre, pero no me deja responder al mensaje, asi que lo hago aqui y luego comento el problema que estoy teniendo ahora. La solucion a los bloqueos la encontre invocando yo mismo el web service http://code.google.com/p/saist/source/browse/trunk/src/mx/ip n/presentacion/ConexionConNegocios.java?r=817 y funciona perfectamente. El problema que tengo ahora es que como tengo que replicar datos en varias bases de datos, para las pruebas tengo 2 bases de datos distintas, pero con las mismas tablas, entonces leo de una y replico en la otra. Para esto, tengo dos archivos de configuracion hibernate.cfg.xml y me creo un sessionFactory con cada uno. En el debug se ve que para cada caso coge la url de la base de datos que corresponde, pero cuando termina la ejecucion, lo inserta en la base de datos de la que lo lee, no en la que deberia replicar ¿Alguien sabe pq puede ser? Saludos y gracias. |
|
|
||
| RE: Problema con multiples sessionFactory | 03/11/2008 16:07 | |
| diegolo69 |
Bueno, pues sigo con el mismo problema, a ver si alguien me puede ayudar, pq no se que ocurre. Meta las distintas sessionFactory en un HashMap o en variables estaticas, siempre inserta en la misma base de datos. Lo curioso es que si se observa los distintos objetos session al depurar, trabajan correctamente cada uno en la base de datos, pero al terminar el proceso lo inserta siempre en la misma. A ver si alquien alguna vez ha hecho algo parecido y me puede pasar un ejemplo, aunque ya he usado ejemplos que he visto, pero nada
Este es el codigo: public class HibernateMultiplesConfig {public static final SessionFactory sessionFactory1; public static final SessionFactory sessionFactory2; static {   ; try {   ; sessionFactory2 < span class="java_operator">= new AnnotationConfiguration().configure("/hibernateCliente.cfg.xml" span>).buildSessionFactory();   ; } catch (Throwable e) {   ; // Make sure you lo g the exception, as it might b e swallowed   ; System.err.println("Initial SessionFactory creation failed." + e);   ; throw new ExceptionInInitializerError(e);   ; } } static {   ; try {   ; sessionFactory1 < span class="java_operator">= new AnnotationConfiguration().configure("/hibernateServicio.cfg.xml"< /span>).buildSessionFactory();   ; } catch (Throwable e) {   ; // Make sure you lo g the exception, as it might b e swallowed   ; System.err.println("Initial SessionFactory creation failed." + e);   ; throw new ExceptionInInitializerError(e);   ; } }   ; static {   ; try {   ; // Create the DEFAULT&nb sp;SessionFactory from hibernate.cfg.xml   ; SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();   ; sessi onFactorys.put(DEFAULT, sessionFactory);   ; } catch (Throwable e) {   ; // Make sure you lo g the exception, as it might b e swallowed   ; System.err.println("Initial SessionFactory creation failed." + e);   ; throw new ExceptionInInitializerError(e);   ; }   ; } } public Session getSession()   ; throws HibernateException {   ; return HibernateMultiplesConfig.sessionFactory1.openSession(); } public void insertarSolicitud(Solicitud solicitud) throws Exception { Session session = null; Transaction tx = null; try {   ; session = getSession();   ; tx = session.beginTransaction();   ;   ; session.save(solicitud);   ;   ; tx.commit(); } catch (Exception e) {   ; tx.rollback();   ; throw new Exception(e); } finally {   ; if (session != null) {   ; session.close();   ; } } } |
|
|
||
| RE: Problema con multiples sessionFactory | 03/11/2008 16:15 | |
| diegolo69 |
Bueno, pues sigo con el mismo problema, a ver si alguien me puede ayudar, pq no se que ocurre. public static final SessionFactory sessionFactory1; public static final SessionFactory sessionFactory2; static {   ; try {   ; sessionFactory2 < span class="java_operator">= new AnnotationConfiguration().   ; configure("/hibernateCliente.cfg.xml" span>).buildSessionFactory();   ; } catch (Throwable e) {   ; // Make sure you lo g the exception, as it might b e swallowed   ; System.err.println("Initial SessionFactory creation failed." + e);   ; throw new ExceptionInInitializerError(e);   ; } } static {   ; try {   ; sessionFactory1 < span class="java_operator">= new AnnotationConfiguration().   ; configure("/hibernateServicio.cfg.xml"< /span>).buildSessionFactory();   ; } catch (Throwable e) {   ; // Make sure you lo g the exception, as it might b e swallowed   ; System.err.println("Initial SessionFactory creation failed." + e);   ; throw new ExceptionInInitializerError(e);   ; } }   ; static {   ; try {   ; // Create the DEFAULT&nb sp;SessionFactory from hibernate.cfg.xml   ; SessionFactory sessionFactory = new AnnotationConfiguration().   ; confi gure().buildSessionFactory();   ; sessi onFactorys.put(DEFAULT, sessionFactory);   ; } catch (Throwable e) {   ; // Make sure you lo g the exception, as it might b e swallowed   ; System.err.println("Initial SessionFactory creation failed." + e);   ; throw new ExceptionInInitializerError(e);   ; }   ; } } // obtengo la session&nb sp;del servicio public Session getSession()   ; throws HibernateException {   ; return HibernateMultiplesConfig.sessionFactory1.openSession(); } // inserto en el se rvicio public void insertarSolicitud(Solicitud solicitud) throws Exception { Session session = null; Transaction tx = null; try {   ; session = getSession();   ; tx = session.beginTransaction();   ;   ; session.save(solicitud);   ;   ; tx.commit(); } catch (Exception e) {   ; tx.rollback();   ; throw new Exception(e); } finally {   ; if (session != null) {   ; session.close();   ; } } } // obtengo la session&nb sp;del cliente public Session getSession() throws HibernateException { return } // leo en el client e public Solicitud getSolicitud(String idSolicitud) throws Exception { Solicitud solicitud = new Solicitud(); Session session = null; Transaction tx = null; try{   ; session = getSession();   ; tx = session.beginTransaction();   ; Query query = session.createQuery("FROM Solicitud S W HERE S.idSolicitud = " + idSolicitud +   ; " AND S.fechaBaja I S NULL");   ; solicitud = (Solicitud) query.uniqueResult();   ;   ; tx.commit(); } catch (Exception e) {   ; tx.rollback();   ; throw new Exception(e); } finally {   ; if (session != null) {   ; session.close();   ; }   ; } return solicitud; } |
|
|
||