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 17:10:30 GMT
Hi,

I've check the code and your e-mails, you said that you have the column as
bytea, with the lastest code in the trunk your column must be an integer,
OpenJPA uses it to reference the id in the pg_largeobject table. Please, can
you alter this and try to run your case?

Thanks,

2008/9/3 Ignacio Andreu <plunchete@gmail.com>

> 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