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:
Code pour save():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 update:
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 delete:
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(); }
Classe ParametreRN.java
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(); }
Interface ParametreDAO.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); } }
Classe ParametreDAOHibernate.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); }
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 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é 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 @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; } }
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
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; } }
Merci d'avance pour vos réponses.
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>
Partager