Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/04/2011, 12:17
y0mism0
 
Fecha de Ingreso: diciembre-2007
Mensajes: 135
Antigüedad: 16 años, 4 meses
Puntos: 1
Acceder a Mysql con Hibernate session

Buenas, necesito ayuda para acceder a la base de datos con Hibernate 3, no consigo hacerlo funcionar.

La clase donde gestiono las operaciones con la base de datos se llama com.dao.UserDAOImpl. Ahí pongo lo siguiente:
Código:
...
SessionFactory sessionFactory;
...

public void saveUser(User user) {
sessionFactory.getCurrentSession().save(user);
}

tambien he probado a hacer:

Código:
session = sessionFactory.openSession();
session.save();
Incluso:


Código:
Transaction transaction = null;


transaction = session.beginTransaction();
session.save(user);
transaction.commit();
el xml en el que declaro los beans:
Código:
...

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
		<property name="url" value="jdbc:mysql://localhost/miproyecto"/>
		<property name="username" value="root"/>
		<property name="password" value="root"/>
	</bean>
	
	<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="dataSource" ref="myDataSource" />
		<property name="annotatedClasses">
			<list>
				<value>com.domain.User</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.hbm2ddl.auto">create</prop>
			</props>
		</property>
	</bean>
	
	<bean id="myUserDAO" class="com.dao.UserDAOImpl">
		<property name="sessionFactory" ref="mySessionFactory"/>
	</bean>

    
    <bean id="userController" class="com.web.UserController">
    <property name="userDAO" ref="myUserDAO"/>
    </bean>
...
Y me da el error al tratar de guardar un usurio:

Código:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
Con HibernateTemplate si me deja guardarlo, ¿que hago para que me deje usar session?


Bien eso por una parte, otra cosa, utilizando Hibernate, ¿de que me tengo que preocupar? Quiero decir, por ejemplo, ¿tengo que preocuparme de cerrar conexiones con la base de datos?
¿tengo que preocuparme de tratar los errores que pueda lanzar la base de datos? No se si todo eso te lo maneja el framework o lo tienes que manejar tu, de momento los errores como por ejemplo cuando la base de datos no esta disponible o cuando violo la integridad de ésta me salta una página fea de error que no debería salir lógicamente, por lo que veo los errores si son necesario tratarlos, ¿estoy en lo cierto?

Espero que me podais aclarar un poco esto,

Gracias,

Un saludo