Partage
  • Partager sur Facebook
  • Partager sur Twitter

hibernate Exception :J2EE

Transaction not successfully started

    16 janvier 2018 à 9:54:05

    Bonjour,

    Je viens de créer mon premier projet avec hibernate et J2EE en suivant le modele MVC. Mon projet est un simple formulaire d'authentification et d'inscription. J'ai crée mes pages web.

    le code de fichier hibernate.cfg.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <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:8080/jwt</property>
            <property name="hibernate.connection.username">root</property>
            <property name="hibernate.connection.password"></property>
            <property name="show_sql">true</property>		
            <property name="hbm2ddl.auto">create/update</property>
            <mapping class="com.javawebtutor.model.User" /> 
        </session-factory>
    </hibernate-configuration>
    

    Le code de registerService

    package com.javawebtutor.service;
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    
    import com.javawebtutor.hibernate.util.HibernateUtil;
    import com.javawebtutor.model.User;
    public class RegisterService {
    	
    public boolean register(User user){
    	 Session session = HibernateUtil.openSession();
    	 if(isUserExists(user)) return false;	
    	
    	 Transaction tx = null;	
    	 try {
    		 tx = session.getTransaction();
    		 tx.begin();
    		 session.saveOrUpdate(user);		
    		 if (!tx.wasCommitted()){
                 tx.commit();
                 }
    	 } catch (Exception e) {
    		 if (tx != null) {
    			 tx.rollback();
    		 }
    		 e.printStackTrace();
    	 } finally {
    		 session.close();
    	 }	
    	 return true;
    }
    
    public boolean isUserExists(User user){
    	 Session session = HibernateUtil.openSession();
    	 boolean result = false;
    	 Transaction tx = null;
    	 try{
    		 tx = session.getTransaction();
    		 tx.begin();
    		 Query query = session.createQuery("from user_table where userId='"+user.getUserId()+"'");
    		 User u = (User)query.uniqueResult();
    		 if (!tx.wasCommitted()){
               tx.commit();
                }
    		
    		 if(u!=null) result = true;
    	 }catch(Exception ex){
    		 if(tx!=null){
    			 tx.rollback();
    		 }
    	 }finally{
    		 session.close();
    	 }
    	 return result;
    }
    }

    Lors de l'inscription une erreur s'affiche :

    Erreur: org.hibernate.TransactionException: Transaction not successfully started




    • Partager sur Facebook
    • Partager sur Twitter
      16 janvier 2018 à 13:22:23

      Bonjour,

      Peux-tu nous fournir la stacktrace complète ?

      De plus dans ta méthode isUserExists tu n'as pas besoin de créer de transaction, tu ne fait que de la lecture.

      • Partager sur Facebook
      • Partager sur Twitter

      hibernate Exception :J2EE

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown