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));
}
}