openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ognjen Blagojevic <ogn...@etf.bg.ac.yu>
Subject Re: Problem with streaming support on PostgreSQL
Date Wed, 03 Sep 2008 15:17:17 GMT
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
View raw message