Estoy creando la aplicación JSF
y estoy usando algunas cosas de hibernación. Todo lo que quiero hacer es salvar a la entidad en la base de datos, pero me siguen dando esta excepción:org.hibernate.HibernateException: guardar no es válido sin la transacción activa
org.hibernate.HibernateException: save is not valid without active transaction
Al principio me estaba poniendo esta excepción:
org.hibernate.HibernateException: No CurrentSessionContext configured!
Entonces me encontré con que tengo que añadir esto en mi configuración de hibernación:
<property name="hibernate.current_session_context_class">thread</property>
Esto resolvió este problema pero ahora aparece el anterior. estoy ahorrando entidad en base de datos de esta manera:
public void create(T entity) {
getSessionFactory().getCurrentSession().save(entity);
}
Mi archivo hibernate.cfg.xml se ve así:
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/online_tests_management</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.current_session_context_class">thread</property>
<mapping class="com.groupgti.onlinetests.management.db.Service"/>
</session-factory>
</hibernate-configuration>
estoy usando:
- Hibernate-4.1.4 .Final
- JDK 1.6
- Tomcat 6
- JSF 2.0
- PrimeFaces 3.3.1
- MySql
¿Alguien sabe donde podría ser el problema?
Gracias, eso funcionó. –
Estoy usando Spring HibernateTransactionManager a través de Spring AOP para configurar las transacciones. Puedo ver en los registros que la transacción se inicia correctamente, pero mi salvación sigue fallando porque no estoy usando el código anterior. ¿Porqué es eso? –