Ik had dezelfde problemen als jij bij het proberen in kaart te brengen met het type "blob". Hier is een link naar een bericht dat ik op de hibernate-site heb geplaatst:https://forum.hibernate.org/viewtopic.php?p=2452481#p2452481
Slaapstand 3.6.9
Oracle Driver 11.2.0.2.0
Oracle Database 11.2.0.2.0
Om het probleem op te lossen, gebruikte ik code met een aangepast gebruikerstype voor de Blob, ik had het retourtype java.sql.Blob.
Hier zijn de belangrijkste methode-implementaties van dit UserType:
public Object nullSafeGet(ResultSet rs, String[] names, Object owner) throws HibernateException, SQLException {
Blob blob = rs.getBlob(names[0]);
if (blob == null)
return null;
return blob;
}
public void nullSafeSet(PreparedStatement st, Object value, int index)
throws HibernateException, SQLException {
if (value == null) {
st.setNull(index, sqlTypes()[0]);
}
else {
InputStream in = null;
OutputStream out = null;
// oracle.sql.BLOB
BLOB tempBlob = BLOB.createTemporary(st.getConnection(), true, BLOB.DURATION_SESSION);
tempBlob.open(BLOB.MODE_READWRITE);
out = tempBlob.getBinaryOutputStream();
Blob valueAsBlob = (Blob) value;
in = valueAsBlob.getBinaryStream();
StreamUtil.toOutput(in, out);
out.flush();
StreamUtil.close(out);
tempBlob.close();
st.setBlob(index, tempBlob);
StreamUtil.close(in);
}
}