ユニットテスト用のインメモリデータベースとしてH2を使用することにしました。私は春を通してすべてを一緒に配線しています。すべてが正常に機能しているようです。DBがロードされ、ddlsqlファイルが実行されます。dmlsqlも実行されます(またはそう思われます)。
データベースにレコードを作成し、それが適切に永続化されていることを取得して検証するテストを実行できます。つまり、これはddlスクリプトが正常に実行されたことを示しています。
問題は、dmlスクリプトを介して挿入されたレコードを受信しようとすると、何も取得されないことです。
同じ挿入ステートメントをファイルに2回入れてみましたが、実際に一意の制約エラーが発生し、実行中であることがわかります...しかし、何らかの理由で永続化されていません。
DDL:
DROP TABLE IF EXISTS `schema`.`region` ;CREATE TABLE IF NOT EXISTS `schema`.`region` (
`region_id` INT(11) NOT NULL ,
`name` VARCHAR(56) NOT NULL ,
`description` VARCHAR(512) NULL DEFAULT NULL ,
PRIMARY KEY (`region_id`) );
DML:
INSERT INTO `schema`.`region` (`region_id`, `name`, `description`) VALUES (1001, 'TEST', 'TESTING');
URL:
jdbc:h2:file:db_test;MODE=MYSQL;INIT=create schema if not exists test_db\\;runscript from 'classpath:test_ddl.sql'\\;runscript from 'classpath:test_dml.sql'
どんな助けでも役に立ちます。
ありがとう