Я пытаюсь загрузить json в json Column type в Postgresql, используя Arquillian и Wildfly Server. Так что в основном я написал тест InContainer.Загрузка Json в качестве типа столбца с использованием настроек Arquillian и Wildfly
@Test
@UsingDataSet("datasets/contracts/contracts.yml")
public void FindContractByContractCodeAndUserId_ValidContractResponse() {
ContractResponse contractResponse = contractBoundary.getContractByContractCodeAndUserId("0816QMCG", 1);
assertThat(contractResponse, notNullValue());
assertThat(contractResponse.getAmount(), is(800.0));
assertThat(contractResponse.getDescription(), is("MacBook"));
assertThat(contractResponse.getImageLink(), is("http://dasdas.de/"));
assertThat(contractResponse.isShowOnMarketplace(), is(false));
assertThat(contractResponse.getStatus(), is(ContractStatusEnum.PENDING));
}
Файл YML это содержит столбец, который является JSON типа, что-то, как показано ниже:
данных: { "данные": { "newAmount": 700.23}}
приложение это сам может хранить json-тип в postgresql.
Теперь я пишу тест InContainer, который будет загружать данные в базу данных с памятью H2, но я проверил, что H2 не поддерживает json, поэтому я перешел на использование postgresql и развернул драйвер psql, но когда я я всегда получаю следующую ошибку:
java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) в java.lang.Thread.run (Thread.java:745) Вызвано: org.dbunit.dataset.NoSuchColumnException: contract_events.DATA - (Неверный вводный столбец: данные) в карте кеша ColumnNameToIndexes. Обратите внимание, что имена столбцов карты НЕ чувствительны к регистру. на org.dbunit.dataset.AbstractTableMetaData.getColumnIndex (AbstractTableMetaData.java:117) в
И в тесте не удается засеять базу данных. !!!!
Спасибо за ответ, но это не помогло, так как я понимаю, это позволяет arquillian (дб блок под капотом) в основном использовать данные PostGreSQL тип. Столбец, который я посеял, - это тип json. Можно ли сказать, что dbUnit не поддерживает тип json для целей посева. ? Оставайтесь, если для этого есть работа, это будет здорово. – chand
Если бы вы могли поделиться проектом на GH, я мог бы взломать его, отправить PR и прокомментировать здесь для остальных :) –
[PostgresqlDataTypeFactory] (https://sourceforge.net/p/dbunit/code.git/ci/master/tree /dbunit/src/main/java/org/dbunit/ext/postgresql/PostgresqlDataTypeFactory.java) не поддерживает типы 'json' или' jsonb'. См. Исходный код для списка дополнительных поддерживаемых типов. – czerny