JPA Entity CLOB столбец другого типа данных для тестирования - PullRequest
0 голосов
/ 28 февраля 2019

Я сохраняю данные CLOB, используя Hibernate и Hikari pool.Во время тестирования я использую HSQL в памяти БД.Но для производства я использую другую БД.Тип данных CLOB Java - String для БД HSQL.но мой реальный тип данных БД - byte [].Я использую Arquillian для тестирования.

Как использовать тип данных byte [] для основного кодирования и строковый тип данных для тестирования?

Я пробовал с Альтернативой, но это не работает, а также я пробовал Специализированные, не повезло.

@Entity
class Article {
   @Id
   private long id;
    @Lob
    @Column(name="data", columnDefinition = "CLOB")
    private byte[] data;

}

<dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>5.3.7.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-hikaricp</artifactId>
            <version>5.3.7.Final</version>
        </dependency>

Как решить эту проблему с типом данных во время тестирования?

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Поскольку мой производственный и тестовый Db отличаются и сталкиваются, тип данных CLOB для Java различен в обеих БД.

create.sql

создать статью таблицы (целочисленный идентификатор, двоичный файл данных (500));

Я создал другойСхема для тестирования и загрузки этих схем через persistence.xml.Я выполнил приведенную ниже настройку в файле persistence.xml только для тестирования.

    <property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
    <property name="javax.persistence.schema-generation.create-source" value="script"/>
    <property name="javax.persistence.schema-generation.create-script-source" value="schema/create.sql"/>
    <property name="javax.persistence.schema-generation.drop-source" value="script"/>
    <property name="javax.persistence.schema-generation.drop-script-source" value="schema/drop.sql"/>

Вся схема создания таблицы доступна в create.sql, а схема удаления таблицы - в drop.sql.

Работает хорошосейчас.

0 голосов
/ 03 марта 2019

Если вы не обращаетесь к содержимому строк данных внутри запросов SQL, вы можете использовать BLOB или BINARY в качестве типа данных в HSQLDB.

...