Foros del Web » Programación para mayores de 30 ;) » Java »

Java Hibernate Error java.lang.reflect.InvocationTargetException

Estas en el tema de Java Hibernate Error java.lang.reflect.InvocationTargetException en el foro de Java en Foros del Web. Hola gente, and tratando de aprender algo de hibernate. Estube tratando de Persistir una clase de java en una base de datos postgresql. Bien el ...
  #1 (permalink)  
Antiguo 11/05/2013, 12:00
 
Fecha de Ingreso: abril-2013
Mensajes: 5
Antigüedad: 11 años, 6 meses
Puntos: 0
Java Hibernate Error java.lang.reflect.InvocationTargetException

Hola gente, and tratando de aprender algo de hibernate. Estube tratando de Persistir una clase de java en una base de datos postgresql. Bien el tema es que me esta tirando una excepcion, java.lang.reflect.InvocationTargetException para ser mas especifico. Lo raro es que a pesar de la excepcion se conecta a la base de datos crea la tabla correspondiente a la clase que quiero persistir, pero lo q no hace es intertar la fila correspondiente al objeto que quiero persistir en la tabla.

Debo aclara que estoy realizando la persistencia con el estandar de java EntityManager y no Session el estandar de hibernate. Debo usar el de java porque es lo que me piden en la facultad.

les adjunto el codigo que utilizo.
Basicamente son 2 clases y 1 xml. una es la clase PasajeroBis que es la que quiero persistir, la otra es un pequeño main o test como quieran decirle con el punto de entrada que es la que instancia PasajeroBis y persiste la clase. El xml es el persistence.xml que utiliza entitymanagerFactory para crear el entitymanager adecuado a mi situacion(en este caso una base de datos postgre, con las cofig hibernate requeridas, etc)


Clase a persistir PasajeroBis.
Código JAVA:
Ver original
  1. package Usuarios;
  2. import java.io.Serializable;
  3. import javax.persistence.*;
  4.  
  5.  
  6. public class pasajeroBis implements Serializable {
  7.     @Id
  8.    
  9.     private int id;
  10.     private float saldo;
  11.  
  12.  
  13.     public int getId() {
  14.         return id;
  15.     }
  16.  
  17.     public void setId(int id) {
  18.         this.id = id;
  19.     }
  20.  
  21.     public float getSaldo() {
  22.         return saldo;
  23.     }
  24.  
  25.    
  26.     public void setSaldo(float saldo) {
  27.         this.saldo = saldo;
  28.     }
  29.    
  30. }


Clase Test con el punto de entrada Main:
Código JAVA:
Ver original
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package hibernateproj;
  6.  
  7. import Usuarios.pasajeroBis;
  8.  
  9. import javax.persistence.EntityManager;
  10. import javax.persistence.EntityManagerFactory;
  11. import javax.persistence.*;
  12.  
  13. /**
  14.  *
  15.  * @author Fer500
  16.  */
  17. public class HibernateProj {
  18.  
  19.     /**
  20.      * @param args the command line arguments
  21.      */
  22.     public static void main(String[] args) {
  23.        EntityManagerFactory emf = Persistence.createEntityManagerFactory("HibernateProjPU");
  24.        EntityManager em = emf.createEntityManager();
  25.        
  26.        pasajeroBis pasajero = new pasajeroBis();
  27.        pasajero.setSaldo(10);
  28.        pasajero.setId(1);
  29.        
  30.  
  31.        em.persist(pasajero);
  32.     }
  33. }


y el xml de configuracion:
Código XML:
Ver original
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
  3.   <persistence-unit name="HibernateProjPU" transaction-type="RESOURCE_LOCAL">
  4.     <provider>org.hibernate.ejb.HibernatePersistence</provider>
  5.    
  6.     <properties>
  7.       <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/clienteServidor"/>
  8.       <property name="javax.persistence.jdbc.password" value="miPassword"/>
  9.       <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
  10.       <property name="javax.persistence.jdbc.user" value="postgres"/>
  11.    
  12.       <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
  13.       <property name="dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
  14.       <property name="hibernate.hbm2ddl.auto" value="create"/>
  15.       <property name="showSql" value="true"/>
  16.     </properties>
  17.   </persistence-unit>
  18. </persistence>





esto es lo que me devuelve la consola:
run:
may 11, 2013 2:49:36 PM org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
may 11, 2013 2:49:36 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.1.12.Final}
may 11, 2013 2:49:36 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
may 11, 2013 2:49:36 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
may 11, 2013 2:49:36 PM org.hibernate.service.jdbc.connections.internal.Dr iverManagerConnectionProviderImpl configure
INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)
may 11, 2013 2:49:36 PM org.hibernate.service.jdbc.connections.internal.Dr iverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20
may 11, 2013 2:49:36 PM org.hibernate.service.jdbc.connections.internal.Dr iverManagerConnectionProviderImpl configure
INFO: HHH000006: Autocommit mode: true
may 11, 2013 2:49:36 PM org.hibernate.service.jdbc.connections.internal.Dr iverManagerConnectionProviderImpl configure
INFO: HHH000401: using driver [org.postgresql.Driver] at URL [jdbc:postgresql://localhost:5432/clienteServidor]
may 11, 2013 2:49:36 PM org.hibernate.service.jdbc.connections.internal.Dr iverManagerConnectionProviderImpl configure
INFO: HHH000046: Connection properties: {user=postgres, password=****, autocommit=true, release_mode=auto}
may 11, 2013 2:49:37 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL82Dialect
may 11, 2013 2:49:37 PM org.hibernate.engine.jdbc.internal.LobCreatorBuild er useContextualLobCreation
INFO: HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
may 11, 2013 2:49:37 PM org.hibernate.engine.transaction.internal.Transact ionFactoryInitiator initiateService
INFO: HHH000268: Transaction strategy: org.hibernate.engine.transaction.internal.jdbc.Jdb cTransactionFactory
may 11, 2013 2:49:37 PM org.hibernate.hql.internal.ast.ASTQueryTranslatorF actory <init>
INFO: HHH000397: Using ASTQueryTranslatorFactory
may 11, 2013 2:49:37 PM org.hibernate.tool.hbm2ddl.SchemaExport execute
INFO: HHH000227: Running hbm2ddl schema export
may 11, 2013 2:49:37 PM org.hibernate.tool.hbm2ddl.SchemaExport execute
INFO: HHH000230: Schema export complete
BUILD SUCCESSFUL (total time: 1 second)


P/D: REPITO: antes de ejecutar el programa solo existe la base de datos vacia sin la tabla pasajeroBis, luego de ejecutar, se crea la tabla pero no inserta la fila correspondiente al objeto pasado al metodo persist().
otra cosa estoy usando hibernate4 y el driver de postgre tmb es el ultimo.


Si alguno tiene idea a que corresonde esta excepcion le estaria muy agradecido. ya eh probado hacerlo con eclipseLink y no eh tenido ningun problema. nose cual es el problema de hibernate :S
  #2 (permalink)  
Antiguo 11/05/2013, 16:41
 
Fecha de Ingreso: marzo-2012
Ubicación: Argentina
Mensajes: 111
Antigüedad: 12 años, 7 meses
Puntos: 12
Respuesta: Java Hibernate Error java.lang.reflect.InvocationTargetException

Buenas

no se si esa exception sea tu probema
por ejemplo mira lo que dicen aca
http://stackoverflow.com/questions/1...eclob-method-t

En este tutorial manejan la transaccion
http://www.vogella.com/articles/Java...I/article.html

no veo que estes haciendo eso quizas puedas probar esa parte.


Saludos.

Etiquetas: hibernate, persistencia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:43.