Как вставить Clob с помощью JPA - PullRequest
2 голосов
/ 29 августа 2011

У нас возникла проблема, когда нам нужно сохранить копию входного файла в БД (в целях регулирования).Файл может иметь размер до 1 ГБ.Есть ли способ (используя потоковые и инкрементные обновления) вставить весь файл в БД с использованием JPA?

Ответы [ 2 ]

3 голосов
/ 17 октября 2011

Вы можете использовать аннотацию @Lob в поле, а ваш поставщик JPA определит все остальное. Я использовал это для

Например:

@Entity
public class TextArticle{

    private Date creationDate;

    @Lob
    private String textContent;

    ...
}

А потом, используйте его как строку.

EntityManager em;
em.persist(new TextArticle(date, textContent));

Если вы предпочитаете использовать BLOB вместо CLOB, попробуйте следующее:

@Entity
public class TextArticle{

    private Date creationDate;

    @Lob
    private byte[] textBytes;

    ...
}

Ознакомьтесь с документацией Hibernate

0 голосов
/ 17 октября 2011

Если файл действительно может быть 1 г, а у вас нет> 1 г ОЗУ, тогда, вероятно, лучше всего использовать сырой JDBC с использованием потоков в файле и BLB-объекта JDBC.

...