안녕하세요! 항상 좋은 답변 감사드립니다. doSomething 함수에서 선언된 매개변수 int y의 주소가, doSomething(5) doSomething(x) doSomething(x+1) 실행될 때마다 똑같은데, 함수가 한번 실행 되면 할당받은 주소가 없어지고, 두번째 실행부터는 다른 주소가 뜰것 같은데 셋 다 똑같네요.. 왜 그런 것인가요?
안녕하세요, 공부하다 cascade 옵션과 변경 감지에 혼동되는 점이 있어 질문 드립니다. 주문 생성 메서드(order)의 경우, Order -> OrderItem / Order -> Delivery가 Cascade 설정이 되어 있어 orderRepository.save(order)만 하더라도 연관된 OrderItem과 Delivery가 각각 Insert된다고 이해했습니다.(remove, detach 등등 모두 동일) 주문 취소 메서드(cancelOrder)를 보면 orderId를 통해 order를 조회하고(조회된 order는 영속 상태), order.cancel()시 orderItem.cancel()과 그 안의 item.addStock()을 통해 변경감지가 되어 order와 item의 update 쿼리가 실행된다고 하셨습니다. 여기서 제가 헷갈리는 부분은 주문 취소시 item이 변경감지가 되어 update쿼리가 실행되는 부분인데요. item.addStock()을 통해 item의 update 쿼리가 실행됐다는 것은 item이 영속성 컨텍스트에 영속상태가 되었다는 것을 뜻하는데, 단순히 order를 orderRepository로 조회를 하게 되면 order와 연관된 모든 엔티티들이 영속상태가 되는 것인가요? (order 한 개 조회 시-> orderItem... 영속-> item... 영속) 위의 과정이 맞다면 연관된 여러 엔티티의 변경감지는 cascade 설정과는 무관하게 엔티티 조회 시 관련된 엔티티는 모두 영속화 되는 것인지 궁금합니다. (order -> orderItem -> item 의 변경감지를 위해 order->orderItem cascade.ALL 설정 & orderItem->item cascade.ALL 설정이 되어야 orderRepository를 통해 order 조회 시 하위 엔티티들이 모두 영속화 되는 것인가?) 만일 연관관계가 있는 엔티티들이 cascade설정이 되어있어야 모두 영속성 상태로 변하는 것이라면 order->orderItem에는 cascade.ALL 설정이 있으나 orderitem->item에는 cascade.ALL 설정이 없는데 order -> orderItem -> item 순으로 변경감지가 되는지 궁금합니다. 질문이 좀 길어졌는데요 변경감지와 cascade 두 개념에 혼동이 와서... 위 질문에 답변해주시면 감사하겠습니다!
안녕하세요 선생님! 강의를 듣다가 궁금한게 생겨 몇 가지 질문드립니다. 1. @Query를 이용해서 jpql 페치조인을 한 경우, 페이징을 하려할때 다음과 같은 에러가 뜹니다. @Query("select m from Member m join fetch m.team") Page<Member> findFetchJoinTeam(Pageable pageable); @Test void member (){ Team teamA = teamRepository .save( new Team( "teamA" )) ; memberRepository .save( new Member( "member1" , 40 , teamA)) ; memberRepository .save( new Member( "member2" , 40 , teamA)) ; memberRepository .save( new Member( "member3" , 40 , teamA)) ; PageRequest pageRequest = PageRequest. of ( 0 , 3 , Sort. by (Sort.Direction. DESC , "username" )) ; Page<Member> fetchJoinTeam = memberRepository .findFetchJoinTeam(pageRequest) ; } Failed to load ApplicationContext java.lang.IllegalStateException: Failed to load ApplicationContext Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'memberRepository' defined in com.example.forq.MemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Count query validation failed for method public abstract org.springframework.data.domain.Page com.example.forq.MemberRepository.findFetchJoinTeam(org.springframework.data.domain.Pageable)! paging에서 count 부분이 문제인것 같은데 entitygraph로 하면 잘 돼서 제가 뭔가를 놓친건지 궁금합니다 public interface MemberRepository extends JpaRepository<Member , Long> { @Override @EntityGraph (attributePaths = { "team" }) Page<Member> findAll (Pageable pageable) ; } 2. where 등으로 필터링을 하지 않을떄는 countQuery를 분리해서 최적화를 하면된다고 하셨는데 만약 select m from Member m join m.team t where t.name=:name ”같이 조인 대상에 필터링을 하는 경우에는 어떻게 최적화를 할 수 있는지 궁금합니다. 감사합니다!
영한님 안녕하세요 강의 잘 듣고 있습니다 ^^ 프로토타입 빈은 사용시점마다 새롭게 생성해서 사용하는 용도라고 하셨는데요. 이러면 별도의 클래스를 만들어서 사용할 때랑 용도가 유사힐 거 같아서요. 프로토타입 빈을 실무에서 사용할 때는 어떤 용도로 사용되는지 알 수 있을까요? 스프링에서 DI를 할 때 항상 새로운 빈을 생성해서 주입해야 할 때 사용한다는 건 알겠는데 딱히 사용용도가 생각나지를 않아서요 ㅎㅎ
다음 새로운 강의로는 AWS기반의 EKS, NLB, SSL, Nginx, Aurora for mysql을 활용한 쿠버네티스 강의를 만들어주시면 감사하겠습니다. EKS(Elastic Kubernetes Service)로 node 구성시 multi-AZ으로 해주시고, ECR(Elastic Container Registry)사용법, ECS(Elastic Container Service) 사용법, ALB for Ingress로 할지 아니면 'NLB + Nginx for Ingress로 할지', SSL(혹은 TLS)인증서를 어디에 구성할지(Termination할지?), Jenkins 와 쿠버네티스 연동 그리고, 웹서버 혹은 WAS서버가 Scale-In될 때 웹클라이언트 세션 유지 용도로 ElasticCache for Redis도 추가 부탁 드립니다. AWS Shield 서비스인 DDoS Protection, WAF(Web Application Firewall) 도 부탁 드립니다. 이 정도 커리큘럼이면 괜찮은 AWS 중급자 강의가 구성될 것 같습니다.
질문게시판을 보니 6달 전에도 저와 같은 문제를 겪으신 분이 있었네요. 제가 겪은 오류는 taglib prefix="form"과 taglib prefix="spring" 사용 시 500 오류 가 발생하는 것이었습니다. 인터넷을 일주일을 검색하며 왠만한 여러가지 방법들은 전부 시도해본 것 같습니다. 그래도 해결이 안되었습니다. -------------오류 내용--------------------------- 절대 URI인 [http://www.springframework.org/tags/form]을(를), web.xml 또는 이 애플리케이션과 함께 배치된 JAR 파일 내에서 찾을 수 없습니다. 절대 URI인 [http://www.springframework.org/tags]을(를), web.xml 또는 이 애플리케이션과 함께 배치된 JAR 파일 내에서 찾을 수 없습니다. --------------------------------------------------------------- 보고 또 보았던 오류메세지를 보던 중 문득 'Maven dependencies엔 필요한 jar 파일들이 다 다운로드가 된 것 같은데..., 다 있는데 왜 못 찾는다는 걸까' 하는 생각이 들어 WEB-INF 폴더 하위 lib 폴더 안에 spring webmvc jar 파일을 직접 넣었습니다. 또는 tomcat이 설치된 경로의 lib에 spring webmvc jar 파일을 넣으면 WEB-INF/lib 에 넣지 않아도 잘 실행이 됩니다. 저같은 경우는 이 방법으로 오류가 해결되었습니다. 아직도 이전에 오류가 왜 발생했는지 모르겠고 이렇게 하니까 왜 되는지 모르지만 같은 오류로 고생하시는 분이 있을까 하여 공유드립니다.
공의 충돌 처리를 위해서, for ball_idx, ball_val in enumerate (balls): ball_pos_x = ball_val[ "pos_x" ] ball_pos_y = ball_val[ "pos_y" ] ball_img_idx = ball_val[ "img_idx" ] 이부분이 한번 더 들어가잖아요? 이걸 덜 쓸수 잇는 방법이 있을까요?? 전역 변수로 바꿔서 사용하면 되려나...아닌데, 흐음..
MemberService로 MemoryMemberRepository에 접근하는게 아니라 바로 MemoryMemberRepository를 접근하는 이유가 궁금합니다. 이러면 MemberService를 따로 구현할 필요가 없는 거 아닌가요?? 별거 아닌 질문인데 너무 궁금해서 올립니다 ㅜㅜ
C:\Node\boiler-plate\node_modules\express\lib\router\route.js:202 throw new Error(msg); ^ Error: Route.get() requires a callback function but got a [object Object] at Route.<computed> [as get] (C:\Node\boiler-plate\node_modules\express\lib\router\route.js:202:15) at Function.app.<computed> [as get] (C:\Node\boiler-plate\node_modules\express\lib\application.js:482:19) at Object.<anonymous> (C:\Node\boiler-plate\index.js:74:5) at Module._compile (internal/modules/cjs/loader.js:1063:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) at Module.load (internal/modules/cjs/loader.js:928:32) at Function.Module._load (internal/modules/cjs/loader.js:769:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) at internal/main/run_main_module.js:17:47 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! boiler-plate@1.0.0 start: `node index.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the boiler-plate@1.0.0 start script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\<사용자계정>\AppData\Roaming\npm-cache\_logs\2021-03-08T09_25_01_328Z-debug.log 이렇게 오류가 뜨는게 오타는 없어보이는데... 다른 문제가 있을까요...?