소개
게시글
질문&답변
could not initialize proxy [] - no Session
(사진) 선생님 그럼 한가지만 더 질문 하겠습니다. Message one = messageRepository.getOne(1L); Member member = one.getMessageUsers().get(0).getMemberInfo(); 이것인데요 테이블 다이어그램으로 쉽게 표현하겠습니다. (사진) 한마리로 모든 연관관계를 LAZY로 셋팅하고 최초 message 출력(그전에 프록시 상태였습니다. )하고 A스키마의 message_users 까지 탐색 후 그 다음 B스키마의 member 까지 탐색하면 (그전에 프록시 상태였습니다. ) 맨첫번째 이미지 처럼 에러가 발생됩니다. 결국 이것은 다른 트렌젝션이라서 안되는건가요? 결국 그럼 서로 다른 영속성 컨테스트라서? 인가요?
- 0
- 4
- 652
질문&답변
could not initialize proxy [] - no Session
https://www.inflearn.com/questions/33949 혹시 이분도 저랑 같은 이슈 추측=========================선생님 일단 해결한거 같습니다.!!사실 mysql를 사용하는데 한 프로젝트 안에서 각각 다른 스키마를 사용하고 있었습니다.그런데 문제는 디폴트로 선정 안된 다른 스키마통해 JPA getOne 할때나 프록시로된 다른 연관관계를 가져올때 문제가 발생된건데요그래서 이미 빈으로 등록 한 "{쳇}TransactionManager" 통해 실행하고자 transation optional “transactionManager” 에 추가 하고 하니 문제가 없었습니다. (이해가 될실까요? ㅠ.,ㅠ) (사진) 혹시 다른 좋은 방법이 있다면 공유 부탁드립니다 ㅠ,ㅠ
- 0
- 4
- 652
질문&답변
마지막 부분 이해가 ㅠ,ㅠ
답변 감사합니다!!! 죄송한데.. 말씀하시는것은 이해가 가는데 왜???(제가 감히 JPA를 태클 하는것은 아니지만..ㅠ.ㅠ) JPA가 이렇게 행동하지?? 의문이 생겨서 말씀드립니다. ################### 우선 JPQL이기 때문에 DB에서 쿼리로 id:1, memberB 데이터를 조회합니다. 그런데 1차 캐시에 이미 id:1 이라고, 식별자가 충돌이 됩니다. JPA는 영속성 컨텍스트의 동일성을 보장합니다. 따라서 DB의 결과 값을 버리고, 1차 캐시에 있는 결과값을 반환합니다. ##################### 이부분인데요. 이럴꺼면.. 차라리 먼저 1차 캐시에 있는 값(id:1이라는 값이 1차캐시에 있다면)을 식별자가 충돌되는지 안되는지 먼저 확인 후에 충돌 되면 1차 캐시에 있는것을 반환 하는게 좋지 않을까요? 왜 JPQL이기 때문에 먼저 1차 캐시에 있는 데이터가 있나없나 확인 안하고 (위에 기술적으로 힘들다고..ㅠㅠ) DB 커넥션 맺어서 해당 데이터를 가져오고 그럼다음 1차캐시에 식별자 비교해서 충돌나면 DB에서 가져온것을 무시하고(영속성 컨텍스트 동일성 보장하기 위해) 1차 캐시에 있는것을 가져오는지?? 음.. 맨처음 DB에서 가져와서 해당 PK를 가져올수 있어서 1차캐시를 비교 하는게 가능케 할려고 어쩔수없이 하는건가요? 감사합니다!
- 8
- 4
- 626
질문&답변
새로고침시(F5) 변수 state안에 있는 값들은 모두 초기화 되는거 아닌가요?
혹시 store/index.js에서 nuxtServerInit 메소드 통해 me 정보를 API 통해 가져와서 즉 SSR해서 가져오는데이렇게 하지 말고 me 통해 가져온 api data값은 크니깐처음 로그인시 LocalStorage에 저장해서 다른 페이지 이동하거나 새로고침시 저장했던 LocalStorage에 Me를 참조하면 괜찮을까요?
- 0
- 3
- 1.8K
질문&답변
1-4. nuxt를 vuetify와 연결하기 이 강의내용에서 질문이 있습니다.
그럼 vee-validate 같은 경우는 nuxt용이 없는거 같은데 이거 해당 프로젝트에 적용할려면 config 파일같은데에서 Vue.use({설치한 라이브러리}); 해야되는거 아닌가요? 제가 잘 이해를 못할수도 있겠지만 분명 강의에서는 Vue.use 중복을 제거 하기 위해서 Nuxt용 라이브러리를 설치한거라고 하셔서요. 그럼 Nuxt용 라이브러리가 아닌것은 Vue.use({설치한 라이브러리}); 해야되는거 아닌가요?
- 0
- 3
- 348