To spóźniona odpowiedź, ale dla tych, którzy wciąż szukają rozwiązania, znalazłem dobry artykuł Thorbena Janssena na blogu Thoughts on Java. Wadą jest to, że jest on specyficzny dla Hibernate, ale wydaje się, że i tak go używasz. Zasadniczo rozwiązaniem jest użycie atrybutów typu danych java.sql.Blob w swojej encji
@Entity
public class Book {
@Id
@GeneratedValue
private Long id;
private String title;
@Lob
private Clob content;
@Lob
private Blob cover;
...
}
Następnie używasz BlobProxy Hibernate, który zapewnia OutputStream. Ale spójrz na artykuł tutaj