Closed yeon-06 closed 1 year ago
REQUIRED
: 활성된 트랜잭션이 존재하면 해당 트랜잭션을 사용하고, 존재하지 않으면 새로운 트랜잭션을 생성합니다.REQUIRES_NEW
: 활성된 트랜잭션이 있으면 일시 중지 후 새 트랜잭션을 생성합니다.테스트 환경: MySQL
@Transactional(readOnly = true)
로 설정@Transactional
을 가진 다른 메서드 호출 @Test
void test() {
String account = "yeonLog";
User user = new User(account, "연로그", "pwd1234", Level.BASIC);
userDao.save(user);
System.out.println("before: " + userDao.findById(account));
userService.readOnlyTransactionWithTransaction(user);
System.out.println("after: " + userDao.findById(account));
}
아래 사진을 보면 update 하는 메서드에서는 @Transactional
로 설정했음에도 read-only니까 변경이 불가능하다고 뜬다.
This means that self-invocation (in effect, a method within the target object calling another method of the target object) does not lead to an actual transaction at runtime even if the invoked method is marked with @Transactional.
같은 오브젝트에서 다른 메서드를 호출해도 트랜잭션 동작이 안됩니다.
신규 기능 개발
목적
워크스페이스 등록 시 바로 로그인 가능
상세 내용
기존에는 Slack scope 지정 문제로 해당 기능이 불가능하다 판단했었습니다. (https://github.com/woowacourse-teams/2022-pickpick/issues/633) 이번에 scope 지정을 변경하면서 해당 기능을 적용할 수 있게 되었습니다.