Ini adalah jawaban yang terlambat, tetapi bagi mereka yang masih mencari solusi, saya menemukan artikel bagus oleh Thorben Janssen di blog Thoughts on Java. Kekurangannya, ini khusus untuk Hibernate, tetapi Anda tampaknya tetap menggunakannya. Pada dasarnya solusinya adalah menggunakan atribut tipe data java.sql.Blob di entitas Anda
@Entity
public class Book {
@Id
@GeneratedValue
private Long id;
private String title;
@Lob
private Clob content;
@Lob
private Blob cover;
...
}
Dan kemudian Anda menggunakan BlobProxy Hibernate, yang menyediakan OutputStream. Tapi lihat artikelnya di sini