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

Responder a