작성
·
194
0
안녕하세요. 강의 잘 듣고 있습니다.
service에
@Transactional
public ResponseDTO changeAuthority(String invitedId, UserAuthority authority, Long companyId, String sessionUserId, Locale locale) {
Users user = usersRepository.findByUserIdAndCompanyAndUseYn(invitedId, new Company(companyId), "Y");
user.authorityUpdate(authority);
return new ResponseDTO(1, "");
}
간단히 이런 코드가 있습니다.
authorityUpdate는 authority 받아서
this.authority = authority;
해주는 부분입니다.
이 경우 당연히 변경 감지가 돼서 update가 돼야 한다고 생각하는데요
되지 않습니다
지금 이 애플리케이션의 특이점이라고 한다면
DB가 두 대가 붙어 있습니다
그래서 쿼리dsl 사용할 때도 DB를 지정해서 EntityManager를 불러와야 했습니다
저것도 그래서 안되나 싶은데 제가 확인 해봐야 할 것이 뭐가 있을까요??
메인 DB 연결된 쪽은 잘 됩니다
findBy~ 후에 영속성 컨텍스트가 바로 끊기는거 같습니다.
그렇게 생각한 이유는 getById로 해봤는데
could not initialize proxy ~ no session 이런 에러가 발생하고
findById 하면 에러는 나지 않는데 업데이트가 안됩니다.
osiv true로 하고도 해봤습니다.
그냥 save 하면 update 되긴 하는데
그건 선생님께서 알려주신 방법이 아니기도 하고
대체 왜! 안되는지 궁금합니다 ㅠㅠ