IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

Transaction not successfully started


Sujet :

Hibernate Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 44
    Par défaut Transaction not successfully started
    Bonjour,

    Lors de update,save,delete la modification au niveau de la base s'effectue mais je reçois l'erreur suivante dans la console:
    org.hibernate.TransactionException: Transaction not successfully started
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:127)
    at fr.jsf.web.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:34)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
    Aug 18, 2011 1:19:20 PM org.apache.catalina.core.StandardWrapperValve invoke
    SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/JSFProject] threw exception [org.hibernate.TransactionException: Transaction not successfully started] with root cause
    org.hibernate.TransactionException: Transaction not successfully started
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:127)
    at fr.jsf.web.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:34)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
    Code pour save():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void save(){
    		ParametreRN parametreRN= new ParametreRN();
    		UIInput app = (UIInput) FacesContext.getCurrentInstance().getViewRoot().findComponent("param:app");
    		Session session=HibernateUtil.getSf().getCurrentSession();
    		Query query = session.createQuery("SELECT a FROM Application as a WHERE a.applLiblong =:param").setParameter("param", app.getValue().toString());
    		Application appl = (Application) query.uniqueResult();
    		parametre.setParaApplId(appl);
    		parametre.setParaAdministrable(5);
    		parametreRN.save(parametre);
    		session.close();
    	}
    Code pour update:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public void alter(){
    		ParametreRN parametreRN= new ParametreRN();
    		Session session=HibernateUtil.getSf().getCurrentSession();
    		session.beginTransaction();
    		Query query = session.createQuery("SELECT p FROM Parametre as p WHERE p.id =:param").setParameter("param", parametre.getId());
    		Parametre param = (Parametre) query.uniqueResult();
    		param.setId(parametre.getId());
    		param.setParaDescription(parametre.getParaDescription());
    		System.out.println("parametre Num1: "+parametre.getParaNum1());
    		param.setParaNum1(parametre.getParaNum1());
    		param.setParaNum2(parametre.getParaNum2());
    		param.setParaTexte1(parametre.getParaTexte1());
    		parametreRN.alter(param);
    		session.close();
    	}
    Code pour delete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public void delete(){
    		ParametreRN parametreRN= new ParametreRN();
    		UIInput app = (UIInput) FacesContext.getCurrentInstance().getViewRoot().findComponent("param:app");
    		Session session=HibernateUtil.getSf().getCurrentSession();
    		Query query = session.createQuery("SELECT a FROM Application as a WHERE a.applLiblong =:param").setParameter("param", app.getValue().toString());
    		Application appl = (Application) query.uniqueResult();
    		parametre.setParaApplId(appl);
    		parametreRN.delete(parametre);
    		session.close();
    	}
    Classe ParametreRN.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    public class ParametreRN {
     
    	private ParametreDAO parametreDAO;
     
    	public ParametreRN(){
    		parametreDAO=DAOFactory.createParametreDAO();
    	}
     
    	public void save(Parametre parametre) {
    		parametreDAO.save(parametre);
     
    	}
     
    	public void delete(Parametre parametre) {
    		parametreDAO.delete(parametre);
     
    	}
     
    	public void alter(Parametre parametre) {
    		parametreDAO.alter(parametre);
    	}
     
    }
    Interface ParametreDAO.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public interface ParametreDAO {
     
    	public void save (Parametre parametre);
    	public void delete (Parametre parametre);
    	public void alter (Parametre parametre);
     
    }
    Classe ParametreDAOHibernate.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    public class ParametreDAOHibernate implements ParametreDAO {
     
    	private Session session;
     
    	public void setSession(Session s){
    		session=s;
    	}
     
    	@Override
    	public void save(Parametre parametre) {
    		session.save(parametre);
    		session.flush();
     
    	}
     
    	@Override
    	public void delete(Parametre parametre) {
    		session.delete(parametre);
    		session.flush();
     
    	}
     
    	@Override
    	public void alter(Parametre parametre) {
    		session.update(parametre);
    		session.flush();
     
    	}
     
    }
    L'entité Application.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    @Entity
    @Table(name="GEDAPPLICATION")
    public class Application implements Serializable{
     
    	private static final long serialVersionUID = 1L;
    	@Id
    	@Column(name="APPL_ID")
    	private Integer id;
    	@Column(name="APPL_LIBLONG")
    	private String applLiblong;
    	@Column(name="APPL_LIBCOURT")
    	private String applLibcourt;
    	@Column(name="APPL_PLANNING")
    	private Integer applPlannig;
    	@Column(name="APPL_FLAG_ACTIF")
    	private Integer applFlagActif;
    	@Column(name="APPL_GERE_FLUX")
    	private Integer applGereFlux;
    	@Column(name="APPL_PARAM_INSTANCE")
    	private Integer applParamInstance;
    	@Column(name="APPL_SERVICE")
    	private Integer applService;
    	@Column(name="APPL_FLAG_VIRTUEL")
    	private Integer applFlagVirtuel;
     
    	@OneToMany(mappedBy = "paraApplId", cascade = { CascadeType.ALL })
    	private Set<Parametre> apps = new HashSet<Parametre>();
     
    	public Application(){super();}
    	public Integer getId() {
    		return id;
    	}
    	public void setId(Integer id) {
    		this.id = id;
    	}
    	public String getApplLiblong() {
    		return applLiblong;
    	}
    	public void setApplLiblong(String ApplLiblong) {
    		this.applLiblong = ApplLiblong;
     
    	}
    	public Set<Parametre> getApps() {
    		return apps;
    	}
    	public void setApps(Set<Parametre> apps) {
    		this.apps = apps;
    	}
    	public String getApplLibcourt() {
    		return applLibcourt;
    	}
    	public void setApplLibcourt(String applLibcourt) {
    		this.applLibcourt = applLibcourt;
    	}
    	public Integer getApplPlannig() {
    		return applPlannig;
    	}
    	public void setApplPlannig(Integer applPlannig) {
    		this.applPlannig = applPlannig;
    	}
    	public Integer getApplFlagActif() {
    		return applFlagActif;
    	}
    	public void setApplFlagActif(Integer applFlagActif) {
    		this.applFlagActif = applFlagActif;
    	}
    	public Integer getApplGereFlux() {
    		return applGereFlux;
    	}
    	public void setApplGereFlux(Integer applGereFlux) {
    		this.applGereFlux = applGereFlux;
    	}
    	public Integer getApplParamInstance() {
    		return applParamInstance;
    	}
    	public void setApplParamInstance(Integer applParamInstance) {
    		this.applParamInstance = applParamInstance;
    	}
    	public Integer getApplService() {
    		return applService;
    	}
    	public void setApplService(Integer applService) {
    		this.applService = applService;
    	}
    	public Integer getApplFlagVirtuel() {
    		return applFlagVirtuel;
    	}
    	public void setApplFlagVirtuel(Integer applFlagVirtuel) {
    		this.applFlagVirtuel = applFlagVirtuel;
    	}
     
    }
    L'entité Parametre.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    @Entity
    @Table(name="GEDPARAMETRAGE")
    public class Parametre implements Serializable{
     
    	private static final long serialVersionUID = 1L;
    	@Id
    	@Column(name="PARA_MOTCLE")
    	private String id;
    	@Column(name="PARA_TEXTE1")
    	private String paraTexte1;
    	@Column(name="PARA_DESCRIPTION")
    	private String paraDescription;
    	@Column(name="PARA_NUM1")
    	private Integer  paraNum1;
    	@Column(name="PARA_NUM2")
    	private Integer  paraNum2;
    	@Column(name="PARA_ADMINISTRABLE")
    	private Integer  paraAdministrable;
    	@Column(name="PARA_FLAG_FONC")
    	private Integer  paraFlagFonc;
    	@Column(name="PARA_FLAG_TECH")
    	private Integer  paraFlagTech;
     
    	@ManyToOne(fetch=FetchType.LAZY)
    	@JoinColumn(name = "PARA_APPL_ID", nullable = false)
    	private Application paraApplId;
     
     
     
    	public Parametre(){super();}
     
    	public String getId() {
    		return id;
    	}
    	public void setId(String id) {
    		this.id = id;
    	}
     
    	public Application getParaApplId() {
    		return paraApplId;
    	}
     
    	public void setParaApplId(Application paraApplId) {
    		this.paraApplId = paraApplId;
    	}
     
    	public String getParaTexte1() {
    		return paraTexte1;
    	}
     
    	public void setParaTexte1(String paraTexte1) {
    		this.paraTexte1 = paraTexte1;
    	}
     
    	public String getParaDescription() {
    		return paraDescription;
    	}
     
    	public void setParaDescription(String paraDescription) {
    		this.paraDescription = paraDescription;
    	}
     
    	public Integer getParaNum1() {
    		return paraNum1;
    	}
     
    	public void setParaNum1(Integer paraNum1) {
    		this.paraNum1 = paraNum1;
    	}
     
    	public Integer getParaNum2() {
    		return paraNum2;
    	}
     
    	public void setParaNum2(Integer paraNum2) {
    		this.paraNum2 = paraNum2;
    	}
     
    	public Integer getParaFlagFonc() {
    		return paraFlagFonc;
    	}
     
    	public void setParaFlagFonc(Integer paraFlagFonc) {
    		this.paraFlagFonc = paraFlagFonc;
    	}
     
    	public Integer getParaFlagTech() {
    		return paraFlagTech;
    	}
     
    	public void setParaFlagTech(Integer paraFlagTech) {
    		this.paraFlagTech = paraFlagTech;
    	}
     
    	public Integer getParaAdministrable() {
    		return paraAdministrable;
    	}
     
    	public void setParaAdministrable(Integer paraAdministrable) {
    		this.paraAdministrable = paraAdministrable;
    	}
     
    }
    Fichier hibernate.cfg.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                             "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
     <session-factory name="">
      <property name="hibernate.connection.driver_class">org.hibernate.dialect.OracleDialect</property>
      <property name="hibernate.connection.password">geddba</property>
      <property name="hibernate.connection.url">jdbc:oracle:thin:@192.1.1.71:1521:mgp</property>
      <property name="hibernate.connection.username">gedmgpdba</property>
      <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
      <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
      <property name="hibernate.default_schema">gedmgpdba</property>
      <property name="current_session_context_class">thread</property>
      <property name="hibernate.hbm2ddl.auto">update</property>
      <property name="show_sql">true</property>
      <property name="format_sql"/>
      <property name="generate_statistics"/>
      <property name="use_sql_comments">true</property>
      <mapping class="fr.jsf.entity.Application" />
      <mapping class="fr.jsf.entity.Parametre" />
     </session-factory>
    </hibernate-configuration>
    Merci d'avance pour vos réponses.

  2. #2
    Membre émérite

    Profil pro
    Technicien
    Inscrit en
    Février 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2009
    Messages : 338
    Par défaut
    Bonjour,

    Après avoir pris connaissance du post https://forum.hibernate.org/viewtopic.php?p=2395043 et avoir vu ton code, je me demande s'il ne manque pas le code suivant dans le save() et delete() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.beginTransaction();
    Benoit

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 44
    Par défaut
    Enfaite mon problème est la gestion du session et des transactions.

Discussions similaires

  1. [2008R2] SQLServerAgent EXPRESS could not be started
    Par dari68 dans le forum Administration
    Réponses: 2
    Dernier message: 15/11/2013, 14h03
  2. Nested transaction not supported
    Par opium1er dans le forum JSF
    Réponses: 5
    Dernier message: 05/07/2013, 14h15
  3. EJB Transaction not active
    Par Pandev31000 dans le forum Java EE
    Réponses: 1
    Dernier message: 23/04/2012, 13h29
  4. Réponses: 2
    Dernier message: 13/03/2008, 15h42
  5. [Hibernate] Transaction not successfully started
    Par ypoupou dans le forum Hibernate
    Réponses: 6
    Dernier message: 16/05/2006, 10h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo