Я тестирую метод создания для своего приложения. В тесте я встроили HSQL дб, и с использованием Spring JdbcTemplateОшибка при тестировании Вставить строку во встроенный hsqldb с помощью jdbcTemplate
<jdbc:embedded-database id="dataSource" type="HSQL">
<jdbc:script location="classpath:/sql/db/db-schema.sql"/>
<jdbc:script location="classpath:/sql/db/db-data.sql"/>
</jdbc:embedded-database>
где дб-data.sql является
INSERT INTO C_ContactType(name) VALUES ('bob_eng991');
INSERT INTO C_ContactType(name) VALUES ('bob_eng2');
INSERT INTO C_ContactType(name) VALUES ('bob_eng3');
INSERT INTO C_ContactType(name) VALUES ('bob_eng422');
дб-schema.sql является
CREATE TABLE C_ContactType (
contactTypeId INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
name VARCHAR(90) NOT NULL,
deletedOn DATETIME,
deletedBy INT
);
и мой тест is
работает тест, который я получаю ошибку здесь
ResultSet rs = jdbcTemplate.insertWithKey(tablePath,
insert -> insert.columns(paths.toArray(new Path[paths.size()]))
.values(params.toArray(new Object[paths.size()]))
.executeWithKeys());
где tablePath указует на «C_ContactType», путей является ArrayList с моими столбцами таблицы, за исключением поля Autoincrement, и PARAMS является ArrayList со значениями (кроме поля Autoincrement)
И журналы
Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: contactTypeId
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.Table.getColumnIndex(Unknown Source)
at org.hsqldb.Table.getColumnIndexes(Unknown Source)
at org.hsqldb.StatementDML.setGeneratedColumnInfo(Unknown Source)
at org.hsqldb.StatementManager.compile(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
... 82 more
спасибо, я постараюсь это, но у меня есть тесты с обновлением данных тоже, и они ведут себя нормально –
последний код в HSQLDB SVN/базовый/багажник должен работать без изменения таблицы определение – fredt