JPA
-
JPA @Transactional과 @RollbackJPA 2022. 1. 4. 18:30
스프링 @Transactional의 특징과 @Rollback 사용 스프링에서 제공하는 @Transactional은 기본적으로 커밋을 하지 않고 데이터를 롤백을 시킨다. 그렇게 되면 반복적인 테스트할 때 유용하다. 하지만 insert나 update 등의 쿼리문을 보기 위해선 데이터가 DB에 접근을 해야되는데 JPA 특성상 커밋을 하지 않으면 DB에 쿼리가 날라가지 않는다. 따라서, @Transactional을 사용하고 있을 때, DB 쿼리 문을 확인하고 싶으면 @Rollback(false)를 사용해주면 된다. (단, yml에 org.hibernate.type: trace을 선언하면 insert 문이 보이지 않는다.) @Rollback(value = false)
-
TIL(22일차)(2021.11.12)TIL(Today I Learned) 2021. 11. 12. 14:22
Spring Framework의 장점📌 -> 객체지향 설계가 가능 -> 인터페이스를 지정하고 구현체를 사용자 임의대로 바꿀 수 있음.(DI 덕분에) -> 즉, memberService는 memberRepository를 의존하고 있고, 구현체로 memoryMemberReposotory와 , jdbcMemberRepository가 있다고 가정했을 때 -> 사용자 임의대로 memoryMemberRepository를 삭제하고 jdbcMemberRepository로 구현할 수 있다. -> 이는, SOLID에서 O(OCP, Open-Closed Principle) 즉, 개방-폐쇄의 원칙을 만족시킨다. -> 확장에는 열려있고, 수정에는 닫혀있다. 왜냐하면 기존 코드는 손대지 않고 새로운 jdbcMemberReposi..