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.