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:
Citation:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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.