Spring, загрузка Blob, размер байта [] увеличивается вдвое

Я использую Spring 3.0 с Hibernate и PostgreSQL, и у меня возникла следующая проблема:
Я загружаю файлы в базу данных, сохраняю их тип содержимого, и все работает нормально, размер поля в базе данных в порядке. Однако, когда я пытаюсь загрузить его, Hibernate возвращает массив байтов в два раза больше, чем должен. Скачанные файлы конечно повреждены. Размер в 2 раза больше, чем размер в базе данных ... Мой код выглядит следующим образом:
Класс области поля (с отображением):

private byte[] cv;

@Column(name="cv")
public byte[] getCv() {
  return this.cv;
}

Функция DAO, которая загружает объект:

public Candidate load(Integer id) {
  return (Candidate) getHibernateTemplate().get(Candidate.class, id);
}

Конфигурация фабрики сеанса:

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

    <property name="dataSource">
        <ref bean="dataSource"/>
    </property>

    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
            <prop key="hibernate.jdbc.batch_size">30</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>

    <property name="packagesToScan" value="foo.foo.core.domain"/>

</bean>

Создание SQL:

CREATE TABLE candidate
(
  id serial NOT NULL,
  cv bytea,
  ...
)

База данных кодируется в UTF-8, если это имеет какое-либо значение.
Я пытался с org.springframework.jdbc.support.lob.DefaultLobHandler, но он не работает .. Есть идеи? Это сводит меня с ума ..

5
задан Mat 21 February 2011 в 00:54
поделиться