Что является альтернативой для устаревшего Hibernate.createClob (Reader reader, int length) - PullRequest
4 голосов
/ 16 февраля 2012

Похоже, Hibernate.createClob(Reader reader, int length) устарела в версии 3.6.x И он предлагает использовать вместо этого LobHelper.createClob(Reader, long).

Но LobHelper - это интерфейс, а не класс.

Есть ли альтернатива для static method Hibernate.createClob(Reader reader, int length)?

Ответы [ 3 ]

5 голосов
/ 06 июня 2013

Я использовал createBlob (bytes []) из этого класса. Я создал новый класс и следующий метод

    public static Blob createBlob(byte[] bytes) {
       return NonContextualLobCreator.INSTANCE.wrap(NonContextualLobCreator.INSTANCE.createBlob(bytes));
    }
4 голосов
/ 16 февраля 2012

Это способ упростить использование, скрывая реализации.Если вы хотите использовать данные Clob, вам нужно использовать приведенный ниже код.Я проверил его в версии hibernate 3.6.

session.getLobHelper().createClob("the_string");

Теперь перейдем ко второму пункту о его работе. Если вы прочитаете исходный код класса org.hibernate.impl.SessionImpl, вы узнаете, как внутренне спящий режим обрабатывает это.

public LobHelper getLobHelper()
/*      */   {
/* 2245 */     if (this.lobHelper == null) {
/* 2246 */       this.lobHelper = new LobHelperImpl(this, null);
/*      */     }
/* 2248 */     return this.lobHelper;
/*      */   }
0 голосов
/ 17 февраля 2012

Я нашел другую хорошую альтернативу для этого, используя java javax.sql.rowset.serial.SerialClob

Например

Clob clob = new SerialClob("Some very long String.......".toCharArray());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...