안녕하세요 @MeMyself-And-I !
DB를 ddl-auto: create로 설정한 뒤, 전체 test를 실행시켰을 때,
다음과 같이 일부 테스트에서 에러가 발생합니다!
그리고 sql setup 파일 만들 때 member_id, schedule_id 등을 숫자로 지정하게 되면, 언젠가 duplicate 에러가 발생할 수 있으니, jdbcTemplate을 사용해서 어떠한 상황에서 실행하더라도 테스트가 정상 동작하도록 바꾸는게 좋아 보입니다! 또는 Insert (select~~) 를 통해 해결 할 수도 있고요!
원인 파악 후 해결 부탁 드립니다
아래는 그 중 joinSuccess 메서드에서 발생한 오류 메세지 전문 첨부합니다
org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #7 of class path resource [member/MemberSetup.sql]: INSERT INTO study.member_schedule (member_id, created_at, schedule_id, updated_at) VALUES(999, '111111111111111', 999, '111111111111111')
at org.springframework.jdbc.datasource.init.ScriptUtils.executeSqlScript([ScriptUtils.java:282](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at org.springframework.jdbc.datasource.init.ResourceDatabasePopulator.populate([ResourceDatabasePopulator.java:254](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at org.springframework.jdbc.datasource.init.DatabasePopulatorUtils.execute([DatabasePopulatorUtils.java:54](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at org.springframework.jdbc.datasource.init.ResourceDatabasePopulator.execute([ResourceDatabasePopulator.java:269](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener.lambda$executeSqlScripts$9([SqlScriptsTestExecutionListener.java:362](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at org.springframework.transaction.support.TransactionOperations.lambda$executeWithoutResult$0([TransactionOperations.java:68](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at org.springframework.transaction.support.TransactionTemplate.execute([TransactionTemplate.java:140](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at org.springframework.transaction.support.TransactionOperations.executeWithoutResult([TransactionOperations.java:67](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener.executeSqlScripts([SqlScriptsTestExecutionListener.java:362](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener.lambda$executeSqlScripts$4([SqlScriptsTestExecutionListener.java:275](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at java.base/java.lang.Iterable.forEach([Iterable.java:75](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener.executeSqlScripts([SqlScriptsTestExecutionListener.java:275](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener.executeSqlScripts([SqlScriptsTestExecutionListener.java:219](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener.beforeTestMethod([SqlScriptsTestExecutionListener.java:165](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at org.springframework.test.context.TestContextManager.beforeTestMethod([TestContextManager.java:320](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach([SpringExtension.java:240](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at java.base/java.util.ArrayList.forEach([ArrayList.java:1511](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at java.base/java.util.ArrayList.forEach([ArrayList.java:1511](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
Caused by: java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`study`.`member_schedule`, CONSTRAINT `FK85h38v1n4lgwdt3xi0mfujew3` FOREIGN KEY (`schedule_id`) REFERENCES `schedule` (`schedule_id`))
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException([SQLError.java:117](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException([SQLExceptionsMapping.java:122](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at com.mysql.cj.jdbc.StatementImpl.executeInternal([StatementImpl.java:763](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at com.mysql.cj.jdbc.StatementImpl.execute([StatementImpl.java:648](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at com.zaxxer.hikari.pool.ProxyStatement.execute([ProxyStatement.java:94](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java)
at org.springframework.jdbc.datasource.init.ScriptUtils.executeSqlScript([ScriptUtils.java:261](vscode-file://vscode-app/c:/Users/yeahee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
안녕하세요 @MeMyself-And-I ! DB를 ddl-auto: create로 설정한 뒤, 전체 test를 실행시켰을 때, 다음과 같이 일부 테스트에서 에러가 발생합니다!
그리고 sql setup 파일 만들 때 member_id, schedule_id 등을 숫자로 지정하게 되면, 언젠가 duplicate 에러가 발생할 수 있으니, jdbcTemplate을 사용해서 어떠한 상황에서 실행하더라도 테스트가 정상 동작하도록 바꾸는게 좋아 보입니다! 또는 Insert (select~~) 를 통해 해결 할 수도 있고요!
원인 파악 후 해결 부탁 드립니다 아래는 그 중
joinSuccess
메서드에서 발생한 오류 메세지 전문 첨부합니다