PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 01/03/2013 20:46:10

borni
Membre

Les Large Objects ne devraient pas être utilisés en mode auto-commit

Bonjour;

dans une application j2ee j'utilise Postgresql 9.1 , hibernate ,spring.
j'ai un champ de type bytea :

image bytea

mapping :

 <property name="image" type="blob"> <column name="image"   />   </property> 

je peux pas enregistrer   l'objet ayant l'attribut image  .et voic'  ce qui affiche le console

 
org.postgresql.util.PSQLException: Les Large Objects ne devraient pas être utilisés en mode auto-commit.
	at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:239)
	at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:226)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:2899)
	at org.hibernate.type.BlobType.set(BlobType.java:72)
	at org.hibernate.type.BlobType.nullSafeSet(BlobType.java:140)
	at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:2015)
	at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2389)
	at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2325)
	at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2625)
	at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:115)
	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
	at org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:299)
	at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:313)
	at org.springframework.orm.hibernate3.HibernateTemplate.update(HibernateTemplate.java:581)
	at org.springframework.orm.hibernate3.HibernateTemplate.update(HibernateTemplate.java:577)
	at com.base.daoImpl.BaseParametresDaoImpl.updateParametres(BaseParametresDaoImpl.java:28)
	at com.base.servicesImpl.BaseParametresServiceImpl.updateParametres(BaseParametresServiceImpl.java:29)
	at com.base.beans.BaseParametresBean.saveOrUpdate(BaseParametresBean.java:95)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:278)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:98)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
	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:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:722)
 


comment je peux désactiver le mode autau-commit sous windows et sous ubutu ?

et merci.

Hors ligne

#2 01/03/2013 21:41:03

rjuju
Administrateur

Re : Les Large Objects ne devraient pas être utilisés en mode auto-commit

Bonjour,

le mode auto-commit vient de votre programme java, et non de la base ou du système d'exploitation. Il faut le désactiver sur hibernate, avec la fonction Connection.setAutoCommit(). Cela devrait résoudre votre problème.

Hors ligne

#3 01/03/2013 21:45:54

borni
Membre

Re : Les Large Objects ne devraient pas être utilisés en mode auto-commit

merci bien pour votre réponse rapide;
j'ai bien le désactivé  dans la configuration d'hibernate

<prop key="hibernate.connection.autocommit">
		false
</prop>

mais toujours le même probleme.

Hors ligne

#4 01/03/2013 22:18:15

rjuju
Administrateur

Re : Les Large Objects ne devraient pas être utilisés en mode auto-commit

En utilisant une transaction pour cette partie du code alors ?

Hors ligne

Pied de page des forums