Charly,

Obrigado pelo retorno. Vou dar uma analisada melhor no hibernate, talvez
tenhamos que fazer algumas modificações nele.
Não temos como remove-lo pois é o utilizamos a muito tempo, e agora quando
fomos atualizar a versão de outro banco notamos o mesmo problema com campos
binários.

Mas voltando ao Postgres notei que na própria API de conexão não me deixa
enviar meu dados se tiver com o AutoComit:

na classe *org.postgresql.largeobject.LargeObjectManager*

*public *LargeObject open(long oid, int mode) *throws *SQLException
    {
        *if* (conn.getAutoCommit())
            *throw new* PSQLException(GT.tr("Large Objects may not be used
in auto-commit mode."),
                                    PSQLState.*NO_ACTIVE_SQL_TRANSACTION*);
        *return new *LargeObject(fp, oid, mode);
    }

então não seria só problema do hibernate, mas sim do driver de conexão
também? Alguém tem idéia o porque disso?

On Thu, Jul 23, 2009 at 4:14 PM, Charly Frankl <carl...@gmail.com> wrote:

> Daniel,
>
> Campos binários em geral são um problema dentro do hibernate (vou ser
> sincero, não gosto muito de ORM's ... rsss).... Segue um exemplo simples
> utilizando JDBC direto, que acho bem mais simples...
>
> File file = new File("myimage.gif");
> FileInputStream fis = new FileInputStream(file);
> PreparedStatement ps = conn.prepareStatement("INSERT INTO images VALUES (?,
> ?)");
> ps.setString(1, file.getName());
> ps.setBinaryStream(2, fis, (int)file.length());
> ps.executeUpdate();
> ps.close();
> fis.close();
>
> Para maiores detalhes, dá uma olhada em
> http://jdbc.postgresql.org/documentation/80/binary-data.html
>
> Att,
>
>
> --
> Charly Frankl
> http://javadevilopers.blogspot.com/
> charlyfra...@gmail.com
> Linux user #391083
>
>
>
> 2009/7/23 Daniel Henrique Joppi <daniel.jo...@gmail.com>
>
>> adicionei a propriedade <property name="defaultAutoCommit" value="false"
>> /> como sugerido em outros tópicos na internet ...
>>
>> alguém conhece uma outra maneira?
>>
>> On Wed, Jul 22, 2009 at 9:46 AM, Daniel Henrique Joppi <
>> daniel.jo...@gmail.com> wrote:
>>
>>> Bom dia,
>>>
>>> Estou com problemas ao tentar inserir um array de bytes em um campo do
>>> tipo oid.
>>>
>>> org.springframework.jdbc.UncategorizedSQLException: Hibernate operation:
>>> could not insert: [com.norxs.mama.MyMessage]; uncategorized SQLException for
>>> SQL [insert into public.MyMessage (isProtocol, domain, sourceID, service,
>>> flow, priority, status, createdOn, message, props, uniqueid, messageType,
>>> nrDoc, fromPartner, toPartner, messageSize, billingTo, processedOn, billing,
>>> groupType, messageIdKey) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
>>> ?, ?, ?, ?, ?, ?, ?)]; SQL state [25P01]; error code [0]; Objetos Grandes
>>> não podem ser usados no modo de efetivação automática (auto-commit).; nested
>>> exception is org.postgresql.util.PSQLException: Objetos Grandes não podem
>>> ser usados no modo de efetivação automática (auto-commit).
>>>     at
>>> org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:121)
>>>     at
>>> org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322)
>>>     at
>>> org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:424)
>>>     at
>>> org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:410)
>>>     at
>>> org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:378)
>>>     at
>>> org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:639)
>>>     at
>>> com.norxs.mama.DBPersistence.messageArrived(DBPersistence.java:411)
>>>     at
>>> com.norxs.mama.jbi.ReceiverLegacyMonoComponent.poll(ReceiverLegacyMonoComponent.java:98)
>>>     at
>>> org.apache.servicemix.components.util.PollingComponentSupport.run(PollingComponentSupport.java:65)
>>>     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:619)
>>> Caused by: org.postgresql.util.PSQLException: Objetos Grandes não podem
>>> ser usados no modo de efetivação automática (auto-commit).
>>>     at
>>> org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:241)
>>>     at
>>> org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:228)
>>>     at
>>> org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:2851)
>>>     at
>>> org.apache.commons.dbcp.DelegatingPreparedStatement.setBlob(DelegatingPreparedStatement.java:181)
>>>     at org.hibernate.type.BlobType.set(BlobType.java:49)
>>>     at org.hibernate.type.BlobType.nullSafeSet(BlobType.java:117)
>>>     at
>>> org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:2002)
>>>     at
>>> org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2248)
>>>     at
>>> org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2665)
>>>     at
>>> org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:60)
>>>     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:167)
>>>     at
>>> org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
>>>     at
>>> org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
>>>     at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
>>>     at
>>> org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390)
>>>     at
>>> org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:374)
>>>     ... 7 more
>>>
>>> --
>>> [ ]'s
>>> Daniel Henrique Joppi
>>>
>>> msn: no...@hotmail.com
>>> gtalk: daniel.jo...@gmail.com
>>> skype: daniel.joppi
>>>
>>
>>
>>
>> --
>> [ ]'s
>> Daniel Henrique Joppi
>>
>> msn: no...@hotmail.com
>> gtalk: daniel.jo...@gmail.com
>> skype: daniel.joppi
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
>
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
[ ]'s
Daniel Henrique Joppi

msn: no...@hotmail.com
gtalk: daniel.jo...@gmail.com
skype: daniel.joppi
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a