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:04:03 GMT
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