openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ignacio Andreu" <plunch...@gmail.com>
Subject Re: Problem with streaming support on PostgreSQL
Date Wed, 03 Sep 2008 15:25:34 GMT
Okay, I will check it!

2008/9/3 Ognjen Blagojevic <ognjen@etf.bg.ac.yu>

> Tried that already. I get the same exception.
>
> -Ognjen
>
>
>
> Ignacio Andreu wrote:
>
>> Can you try to remove the @LOB annotation? Mark it as @Persistent should
>> be
>> enough.
>> Thanks,
>>
>> 2008/9/3 Ognjen Blagojevic <ognjen@etf.bg.ac.yu>
>>
>>  Here it is.
>>>
>>> -Ognjen
>>>
>>>
>>> Ignacio Andreu wrote:
>>>
>>>  Hi Ognjen,
>>>> Apache OpenJPA doesn't expect an integer is a problem with Postgres.
>>>> This
>>>> problem happens when you try to stream binary data in a bytea column,
>>>> for
>>>> this reason I used the specific table pg_largeobject and the
>>>> LargeObjectManager to manage the binary objects in the streaming LOB
>>>> support. Can you send you entity? (is no attached in the e-mail).
>>>>
>>>> Thanks,
>>>>
>>>> 2008/9/3 Ognjen Blagojevic <ognjen@etf.bg.ac.yu>
>>>>
>>>>  Hi devs,
>>>>
>>>>> I have a problem using streams under PostgreSQL 8.1. Fairly simple JPQL
>>>>> query like this:
>>>>>
>>>>>  select i from Image i
>>>>>
>>>>> Throws an exception:
>>>>>
>>>>> <openjpa-1.3.0-SNAPSHOT-runknown nonfatal general error>
>>>>> org.apache.openjpa.persistence.PersistenceException: Bad value for type
>>>>> int
>>>>> : \001\002\003\004
>>>>>      at
>>>>> org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4239)
>>>>>      at
>>>>>
>>>>>
>>>>> org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4204)
>>>>> ...
>>>>> Caused by: org.postgresql.util.PSQLException: PogreŇ°na vrednost za tip
>>>>> int
>>>>> : \001\002\003\004
>>>>>      at
>>>>>
>>>>>
>>>>> org.postgresql.jdbc2.AbstractJdbc2ResultSet.toInt(AbstractJdbc2ResultSet.java:2699)
>>>>>      at
>>>>>
>>>>>
>>>>> org.postgresql.jdbc2.AbstractJdbc2ResultSet.getInt(AbstractJdbc2ResultSet.java:2016)
>>>>>      at
>>>>>
>>>>>
>>>>> org.apache.openjpa.lib.jdbc.DelegatingResultSet.getInt(DelegatingResultSet.java:134)
>>>>>      at
>>>>>
>>>>>
>>>>> org.apache.openjpa.jdbc.sql.PostgresDictionary.getLOBStream(PostgresDictionary.java:338)
>>>>> ...
>>>>>
>>>>>
>>>>> You can find Image.java in the attachment.
>>>>>
>>>>> Before the exception there was a warning witch foreruns the exception:
>>>>>
>>>>> 16  magazinePu  WARN   [main] openjpa.MetaData -
>>>>> "magazine.model.Image.logo" declares a column "logo" whose JDBC type
is
>>>>> not
>>>>> compatible with the expected type "integer".
>>>>>
>>>>> Column logo is defined as BYTEA in PostgreSQL database, which is I
>>>>> beleive,
>>>>> correct. It is suspicious why the expected type is integer?
>>>>>
>>>>> Configuration:
>>>>> - OpenJPA 1.2.0 / OpenJPA 1.3.0 SNAPSHOT
>>>>> - Enhancing at Build Time
>>>>> - PostgreSQL 8.1.11
>>>>>
>>>>> Regards,
>>>>> Ognjen
>>>>>
>>>>>
>>>>>
>>>>>  package magazine.model;
>>>
>>> import java.io.Serializable;
>>> import javax.persistence.Column;
>>> import javax.persistence.Entity;
>>> import javax.persistence.Id;
>>> import javax.persistence.GeneratedValue;
>>> import javax.persistence.GenerationType;
>>> import java.io.InputStream;
>>> import javax.persistence.Lob;
>>> import org.apache.openjpa.persistence.Persistent;
>>>
>>> @Entity
>>> public class Image implements Serializable {
>>>
>>>   @Id
>>>   @GeneratedValue(strategy = GenerationType.IDENTITY)
>>>   @Column(name="id")
>>>   private int id;
>>>
>>>   @Column(name="name")
>>>   private String name;
>>>
>>>   @Lob
>>>   @Persistent
>>>   @Column(name="logo")
>>>   private InputStream logo;
>>>
>>>
>>>   private static final long serialVersionUID = 1L;
>>>
>>>   public int getId() {
>>>       return this.id;
>>>   }
>>>
>>>   public void setId(int id) {
>>>       this.id = id;
>>>   }
>>>
>>>   public String getName() {
>>>       return this.name;
>>>   }
>>>
>>>   public void setName(String name) {
>>>       this.name = name;
>>>   }
>>>
>>>   public InputStream getLogo() {
>>>       return this.logo;
>>>   }
>>>
>>>   public void setLogo(InputStream logo) {
>>>       this.logo = logo;
>>>   }
>>>
>>> }
>>>
>>>
>>>
>
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message