Я должен пройти через базу данных и изменить ее в соответствии с логикой. Проблема выглядит примерно так. У меня есть таблица истории в моей базе данных, и я должен изменить.
Прежде чем что-то изменить, я должен посмотреть, было ли у объекта (у которого есть несколько строк в таблице истории) определенное состояние, скажем, 4 или 9. Если у него было состояние 4 или 9, то я должен проверить строки между текущей найденной строкой. и следующее состояние 4 или 9 ряд. Если такая строка (между этими состояниями) имеет определенное значение в определенном столбце, я делаю что-то в следующей строке. Я надеюсь, что это достаточно просто, чтобы дать вам идею. Я должен сделать эту проверку для всех объектов. Имейте в виду, что любой объект может быть изменен в любом месте его жизненного цикла (конечно, пока он не достигнет конечного состояния).
Я использую SQL Sever 2005 и Hibernate. AFAIK Я не могу сделать такую сложную проверку в Transact SQL! Так что бы вы порекомендовали мне сделать? До сих пор я думал о том, чтобы сделать это как тест JUnit. Это могло бы иметь преимущество в том, что Hibernate помогал мне вносить изменения, и у меня была бы Java для списков и других структур данных, которые мне могут понадобиться и которых нет в SQL. Если я делаю это как тест JUnit, я не теряю свои файлы сопоставления!
Мне интересно, какие подходы вы бы использовали?