2010-08-13 24 views
9

Estoy usando JBoss Embedded versión beta3.SP10 y estoy frente a un error de persistencia que se debe corregir en alguna versión de Hibernate. Lamentablemente, no sé qué versión de Hibernate se utiliza en mi JBoss Embedded y no pude encontrar una manera de encontrar esta información, el hibernate-all.jar incluido no contiene una clase org.hibernate.Version ni un MANIFIESTO.versión Hibernate?

¿Cómo puedo encontrar la versión de Hibernate actualmente cargada sin usar org.hibernate.Version?

+0

¿Cuál es su caso de uso exactamente? ¿Por qué no usar la clase 'Versión' si tiene esta necesidad? –

+0

Erm my Hibernate distribution no tiene esta clase ... Parece que se ha agregado en el pasado más cercano. El caso de uso que tengo es un error que no puedo entender: ver http://forum.hibernate.org/viewtopic.php?f = 1 & t = 1006411 Esto se debe a que utilizo JBoss incorporado en Tomcat y esta distribución viene con Hibernate cuya versión no conozco. Es probable que una versión más nueva pueda resolver el problema (publiqué un enlace a un informe de error). – Kawu

Respuesta

21

probar esto,

System.out.println(org.hibernate.Version.getVersionString()); 

found here

0

De hecho, parece difícil encontrar qué versiones exactas de los módulos de Hibernate se utilizan. Algunas sugerencias:

  1. Compruebe si su JAR Hibernate tiene un META-INF/MANIFEST.MF con la versión en ella. Parece que los amigos de JBoss estaban usando Ant en este momento y el Manifiesto no proporciona la versión.

  2. Busque el JBoss Embedded SVN para saber exactamente qué están haciendo.

  3. Pruebe con JBoss embedded beta3.SP12 (que puede obtener del repositorio de Maven).

  4. Intente reemplazar hibernate-all con un paquete que contenga Hibernate EM 3.4.0.GA.

Me gustaría dar las opciones 3 y 4 de prueba.

+0

Intenté esto antes. No hay versión allí. Acabo de encontrar https://forum.hibernate.org/viewtopic.php?f=1&t=1003161&start=0 pero no sé dónde poner ese parámetro. Intenté como parámetro de contexto en web.xml, pero no funciona. BTW JBoss embedded es beta3.SP10, la última desde 2009-09-09. – Kawu

+0

@Kawu Logging registra la versión usando la clase 'Version' ... –

6

Este simple código de Java es obtener la versión de Hibernate.

package com.test; 
public class TestBean { 
public static void main(String[] args) { 
    try { 
     String hibernateVersion = org.hibernate.annotations.common.Version.VERSION; 
     System.out.println("Hibernate Version: "+ hibernateVersion); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
} 

Salida:Hibernate Version: 3.1.0.GA

0

prefiero el camino de @Shell, no la de @pudaykiran. De hecho, descubrí que estas dos vías tienen una entrada diferente en mi caso. Como se ha dicho @pudaykiran, llegué:

3.2.0 final

Y como @Shell dije:

3.5.4 final

supongo que la versión final 3.5.4 utiliza org.hibernate.annotations.common de versión previa. Corrígeme si estoy equivocado.

4

Otra forma de obtener la versión.

System.out.println(org.hibernate.cfg.Environment.VERSION) 

Esto es para la versión anterior de Hibernate. p.ej. 3.3.1.GA

+0

Sí, para versiones anteriores 3.2.x, solo esto funcionará. En versiones anteriores, la constante de versión no aparece en annotations.common. – peterong