データベースとして hsqldb を使用しています。データベースにデータを挿入するメソッド insertLmexPostParam(NameValuePostParamVO nameValuePostParamVO) を持つ LmexPostParamDao を作成します。このメソッドをテストするために、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);
}
私の挿入方法は以下の通りです:
@Override
public void insertLmexPostParam(NameValuePostParamVO nameValuePostParamVO) {
String insertQuery = "insert into LMEX_POST_PARAM(lmex_post_param_id, param_name, param_value) values (?,?,?)";
String[] paramArr = { nameValuePostParamVO.getLmexPostParamId(), nameValuePostParamVO.getParamName(), nameValuePostParamVO.getParamValue()};
int update = adapterJdbcTemplate.update(insertQuery, paramArr);
System.out.println(update);
}
テストケースを実行すると、adapterJdbcTemplate の結果である出力として 1 が返されます。これは、データが正常に挿入されたことを意味します。しかし、データベースを見ると、挿入された行が表示されません。そして、同じ値でテストケースメソッドをデバッグすると、例外が発生します: データ整合性違反の例外。この例外の後、データベースが表示されると、データベースにその行が表示されます。何が問題になるでしょう。私はしません。コードを見ると、すべて問題ないように見えます。これを解決するのを手伝ってください。
ありがとうございました