セキュリティ上の脆弱性を修正する必要がありました。アプリケーションがDB内のデータを更新できず、db例外をキャッチし、そのエラーメッセージをカスタマイズします。hibernate.jdbc.batch_sizeが50に設定されていると、例外時に単一の更新をテストできない
この修正をテストするには、updateListサービスを実行して応答を検証する必要がありますが、Hibernateではhibernate.jdbc.batch_sizeが50に設定されています。これは、更新クエリが正常に更新されるため、
以下に述べるように、sessionFactory.getCurrentSession().flush()を置くことによってのみ修正をテストできます。
public void update(final List list)
{
sessionFactory.getCurrentSession().update(list);
sessionFactory.getCurrentSession().flush();
}
他にも最適なソリューションはありますか?またはflush()を実行すると、DB内でクエリやクエリが強制的に更新されますが、hibernate.jdbc.batch_size = 50;
手動テストを実行する場合、手動テストケースが例外をスローする必要があるため、正常に動作しないと主張しますが、正しくないデータが正しく更新されているため、テスターがデータはまだコミットされていないので、どうすればよいですか? – Pawan
各ユーザーアクションのトランザクションを開きます。 Hibernateはトランザクション終了時に保存されていないデータをフラッシュします。トランザクションが閉じられるため、手動テスターに例外が表示されます。 – talex