작성
·
549
2
영한 쌤!!!
@Transactional을 Service에 말고 Repository에 달면 안되나요?
그리고 @Transactional 은 Test 폴더 안에서만 rollback을 시키는건가요? 아니면 SpringBootTest 어노테이션 안에서만 rollback 이 되는건가요?
답변 5
3
안녕하세요. 윽이럴뚜가님! 좋은 질문입니다.
@Transactional은 아무곳에나 다 달아도 됩니다^^ 그런데 아무래도 롤백을 생각하면, 비즈니스 로직이 있는 곳에서 트랜잭션을 시작하는 것이 좋겠지요?
@Transactional이 스프링과 함께 테스트가 동작할 때는 모두 롤백이 됩니다^^ 테스트의 결과를 계속 DB에 저장하면 문제가 되니까요.
감사합니다^^
1
0
0
메뉴얼 앞쪽에 보시면 다음 내용이 있습니다^^
이렇게 하면 테이블을 잘 삭제해줍니다
ext["h2.version"] = "1.4.200" //h2 데이터베이스 버전 지정
ext["hibernate.version"] = "5.4.20.Final" //하이버네이트 버전 지정
혹시 없으면 v1.9 메뉴얼을 다시 받아주세요^^
0
썜. 제가 지금 Table이 안없어지고 에러가 뜨는거 같은데요.(외래키 걸려서 뭔가 테이블 삭제가 안되고있는것 같음)
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Cannot drop "ITEM" because "FKIJA6HJJIIT8DPRNMVTVGDP6RU" depends on it; SQL statement:
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Cannot drop "MEMBER" because "FKPKTXWHJ3X9M4GTH5FF6BKQGEB" depends on it; SQL statement:
대충 이런에러가 뜨네요. 테이블 제거 순서가 막무가내인지 외래키가 삭제 도중 걸려서 중간에 막히네요.
혹시 cascade 테이블 삭제 이런것 없나요?ㅠㅠ 찾기가 힘드네요. 기본편에서 알려주신거같은데 미치겠네요.
그대로 따라했는데 빼먹은거 같네요 제가