Thread: BUG #6241: JDBC: blob doesnot work with bytea

BUG #6241: JDBC: blob doesnot work with bytea

From
"Stefan Franke"
Date:
The following bug has been logged online:

Bug reference:      6241
Logged by:          Stefan Franke
Email address:      stefan@franke.ms
PostgreSQL version: 9.1
Operating system:   any
Description:        JDBC: blob doesnot work with bytea
Details:

To persist a blob you can also use bytea. Unfortunately the JDBC driver does
not support this.

Especially if you can't control the way how the column is accessed, e.g.
using JPA

    @Lob
    @Column(name = "DATA") // using bytea
    private byte[] data;

it fails with distinct JPA implementations (e.g. Hibernate) since the JPA
layer tries to access it as blob.

My workaround is to patch the class org.postgresql.jdbc4.Jdbc4ResultSet:

    public java.sql.Blob getBlob(int i) throws SQLException
    {
        checkResultSet(i);
        if (wasNullFlag)
            return null;

        try {
            return new Jdbc4Blob(connection, getLong(i));
        } catch (PSQLException ex) {
            // bytea use a dummy Blob
            return new SerialBlob(getBytes(i));
        }
    }

Re: BUG #6241: JDBC: blob doesnot work with bytea

From
Robert Haas
Date:
On Thu, Oct 6, 2011 at 4:26 AM, Stefan Franke <stefan@franke.ms> wrote:
>
> The following bug has been logged online:
>
> Bug reference: =A0 =A0 =A06241
> Logged by: =A0 =A0 =A0 =A0 =A0Stefan Franke
> Email address: =A0 =A0 =A0stefan@franke.ms
> PostgreSQL version: 9.1
> Operating system: =A0 any
> Description: =A0 =A0 =A0 =A0JDBC: blob doesnot work with bytea
> Details:
>
> To persist a blob you can also use bytea. Unfortunately the JDBC driver d=
oes
> not support this.

I think you'll need to raise this issue on the pgsql-jdbc mailing
list, as this list is only for bugs in the core distribution.

--=20
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company