diff --git a/src/main/java/com/sztzjy/linkCommerce/service/impl/StudentTrainingAnswerServiceImpl.java b/src/main/java/com/sztzjy/linkCommerce/service/impl/StudentTrainingAnswerServiceImpl.java index fc56b9c..2e7b85b 100644 --- a/src/main/java/com/sztzjy/linkCommerce/service/impl/StudentTrainingAnswerServiceImpl.java +++ b/src/main/java/com/sztzjy/linkCommerce/service/impl/StudentTrainingAnswerServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.PostConstruct; import java.util.Date; import java.util.UUID; @@ -44,6 +45,11 @@ public class StudentTrainingAnswerServiceImpl implements StudentTrainingAnswerSe private boolean studentTrainingAnswerTableChecked = false; + @PostConstruct + public void initializeSchema() { + ensureStudentTrainingAnswerTable(); + } + @Override public StudentTrainingAnswer get(String taskKey, String teachingClassId, JwtUser user) { ensureStudentTrainingAnswerTable(); diff --git a/src/test/java/com/sztzjy/linkCommerce/service/impl/StudentTrainingAnswerServiceImplTest.java b/src/test/java/com/sztzjy/linkCommerce/service/impl/StudentTrainingAnswerServiceImplTest.java index f6b47ee..a502d8a 100644 --- a/src/test/java/com/sztzjy/linkCommerce/service/impl/StudentTrainingAnswerServiceImplTest.java +++ b/src/test/java/com/sztzjy/linkCommerce/service/impl/StudentTrainingAnswerServiceImplTest.java @@ -152,6 +152,17 @@ class StudentTrainingAnswerServiceImplTest { verify(service.jdbcTemplate).execute(startsWith("CREATE TABLE IF NOT EXISTS student_training_step_answer")); } + @Test + void startupInitializesDynamicStepAnswerColumnBeforeHomepageQueries() { + StudentTrainingAnswerServiceImpl service = buildService(); + service.jdbcTemplate = mock(JdbcTemplate.class); + + service.initializeSchema(); + + verify(service.jdbcTemplate).execute(startsWith( + "ALTER TABLE student_training_answer ADD COLUMN dynamic_step_answers")); + } + private StudentTrainingAnswerServiceImpl buildService() { StudentTrainingAnswerServiceImpl service = new StudentTrainingAnswerServiceImpl(); service.studentTrainingAnswerMapper = mock(StudentTrainingAnswerMapper.class);