hsqldb не показывает отражение запроса на вставку при запуске с тестом JUnit - PullRequest
0 голосов
/ 09 марта 2011

Я использую hsqldb в качестве базы данных.я создаю LmexPostParamDao, который имеет метод insertLmexPostParam (NameValuePostParamVO nameValuePostParamVO), который будет вставлять данные в базу данных.для тестирования этого метода я использовал тест JUnit для вставки некоторых данных в hsqldb.

мой метод тестирования JUnit такой:

    @Test
public void testInsertLmexPostParam(){
    String lmexPostParamId = UUID.randomUUID().toString();
    NameValuePostParamVO nameValuePostParamVO = new NameValuePostParamVO();
    nameValuePostParamVO.setLmexPostParamId(lmexPostParamId);
    nameValuePostParamVO.setParamName("adapter_id");
    nameValuePostParamVO.setParamValue("7");

    lmexPostParamDao.insertLmexPostParam(nameValuePostParamVO);
}

мой метод вставки такой:*

когда я запускаю свой тестовый пример, он возвращает мне 1 как вывод, который является результатом adapterJdbcTemplate.что означает, что данные вставлены успешно.но когда я вижу свою базу данных, она не показывает мне вставленную строку.и когда я отлаживаю свой метод testcase с теми же значениями, это дает исключение: исключение нарушения целостности данных.и после этого исключения, когда я вижу свою базу данных, она показывает эту строку в моей базе данных.в чем будет проблема.я не буду.когда я вижу код, все выглядит нормально.помогите мне решить эту проблему.

Спасибо

1 Ответ

0 голосов
/ 09 марта 2011

Проверьте ваш оператор CREATE TABLE для LMEX_POST_PARAM. Типы CHAR и VARCHAR должны быть определены как CHAR (N) и VARCHAR (N), причем N должно быть достаточно большим, чтобы принимать вставляемые значения. Например, VARCHAR (100).

Если ваша проблема в том, что база данных не показывает успешную вставку, вам следует создать базу данных с WRITE_DELAY = 0 или false. См. Документацию HSQLDB для версии, которую вы используете.

...