transaction.begin(); try { Team teamA = new Team(); teamA.setName("teamA"); entityManager.persist(teamA); Member member1 = new Member(); member1.setUsername("Ken"); entityManager.persist(member1); Member member2 = new Member(); member2.setUsername("Jen"); entityManager.persist(member2); Member member3 = new Member(); member3.setUsername("Den"); entityManager.persist(member3); member1.setTeam(teamA); member2.setTeam(teamA); member3.setTeam(teamA); List<Member> memberList = teamA.getMemberList(); System.out.println("========"); System.out.println("memberList = " + memberList); // for (Member member : memberList) { // System.out.println("member = " + member.getUsername()); // } System.out.println("========"); transaction.commit(); 양방향 매핑 예제 관련하여 제 개인적인 예제를 실행하던 중 궁금한 점이 생겼습니다. teamA 객체 생성 + persist, 3명의 멤버 객체를 생성 + persist, 그러고 나서 전부 teamA 라는 데에 소속시켰습니다. persistentContext 에 추가된 상태이므로 team.getMemberList() 하면 세 명의 멤버가 담긴 리스트가 출력될 것이라고 생각한 것과 달리, 빈 리스트로 리턴됩니다. (마지막에 trx.commit() 까지 해서 H2 디비에는 잘 들어가있습니다) 왜 빈 리스트로 리턴되는 것일까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] mappedBy로 지정된 필드는 어느 시점에 변경되는지 궁금하여 질문드립니다. 예를들어 Member 클래스에서 @ManyToOne private Team team; 이렇게 Team 객체를 가지고 Team 클래스에서 @OneToMany(mappedBy="team") List<Member> members = new ArrayList<>(); 이렇게 members 리스트를 읽기전용으로 가진다고 할때 이 리스트가 바라보는 시점은 언제인가요? 제생각엔 1. 영속성 컨텍스트상에서 연관관계의 주인 객체가 변경됨 db에 변경사항이 반영됨 db에 변경사항이 커밋됨 셋중 하나인거같은데 어떤것인가요?
SecurityResourceService클래스에서 getResourceList()에서 이렇게 수정 되어야 하지 않나요?? 왜냐하면 configAttributeList에 권한 정보를 다 넣고 나서 result변수에 키 값인 자원과 value인 configAttributeList가 들어가야 할 것 같아서요. 강의 대로라면 1가지 자원에 여러가지 권한이 들어갈 수 있지만, 강의에서 나오는 코드 대로라면 1가지 자원에 1가지 권한밖에 들어가지 않을 것 같아서 질문드려보았습니다.
안녕하세요, 강사님. 5강 코드트리의 구현 강좌 초반부에서 삽입 예시를 설명해주신 부분에서 의아한 부분이 있어 여쭈어보고자 합니다. 첫 번째 삽입 예시의 Depth를 설명해주실 때, Depth를 4라고 말씀해주셨는데, 5가 아닌가 생각이 들었습니다. 이후 세 번째 삽입 예시의 Depth를 설명해주실 때, 첫 번째 삽입 예시보다 한 단계 작게 삽입이 이루어지는 예시일 때도 Depth를 4라고 말씀하셔서, 어느 부분이 맞는 것인지 궁금합니다.
첫번째 질문입니다. SecurityResourceService클래스에서 ResourcesRepository를 주입받기위한 방법은 3가지가 있는것으로 알고있습니다. 첫째, 생성자 주입 둘째, @Autowired주입 셋째, setter주입 여기서 왜 setter주입방식을 사용하였는지 궁금합니다. setter주입방식은 찾아보니 별로 안좋다는 말이 있어서 질문드려보았습니다. 이 주입방식을 생성자 주입방식 혹은 @Autowired로 변경하여도 상관없는거죠?? 두번째 질문입니다. SecurityResourceService클래스에서 getResourceList()에서 이렇게 수정 되어야 하지 않나요?? 왜냐하면 configAttributeList에 권한 정보를 다 넣고 나서 result변수에 키 값인 자원과 value인 configAttributeList가 들어가야 할 것 같아서요. 강의 대로라면 1가지 자원에 여러가지 권한이 들어갈 수 있지만, 강의에서 나오는 코드 대로라면 1가지 자원에 1가지 권한밖에 들어가지 않을 것 같아서 질문드려보았습니다.
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] WARNING: A Java agent has been loaded dynamically (C:\Users\jkjin\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.10\90ed94ac044ea8953b224304c762316e91fd6b31\byte-buddy-agent-1.14.10.jar) WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information WARNING: Dynamic loading of agents will be disallowed by default in a future release OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 아래와 같이 오류가 발생합니다. 테스트는 잘 실행되지만, 영상에서처럼 Hibernate: 쿼리문~ 이 부분이 보이지 않네요.. 설정이 다르다는것처럼 보이는데 뭐가 문제일까요?
hostPort는 DaemonSet을 생성할때 지정할 수 있는데 DaemonSet에 의해 Kubernetes Cluster에 존재하는 모든 Node에 생성된 Pod에 대해 Node ip/host포트번호 를 통해 접근할 수 있도록 해주는 것이고, nodePort는 하나의 service object 종류로서 service에 연결된 모든 pod에 대해 클러스터 외부에서 service를 접근하더라도 pod에 접근할 수 있도록 해주는 서비스가 맞는지 제가 잘 이해했는지 궁금합니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] [선생님 테스트 로직] @Test void save() { Member member = new Member("hello", 20); Member savedMember = memberRepository.save(member); Member findMember = memberRepository.findById(savedMember.getId()); assertThat(findMember).isEqualTo(savedMember); } 다음의 코드와 같이 선생님께서는 save() 테스트를 할 때 findById() 로직도 사용하시는 것을 확인할 수 있었습니다. 하지만 findById() 로직은 아직 테스트를 거쳐서 검증받지 못한 로직이므로 findById()를 쓰는 것이 아닌 순수 save()만 가지고 테스트를 해야하지 않을까 하는 궁금증이 생겼습니다! [제 테스트 로직] @Test void save() { Member member = new Member("hello", 20); Member savedMember = memberRepository.save(member); assertThat(member).isEqualTo(savedMember); } 그래서 이런 식으로 테스트 하는 것이 어떠한지 선생님께 질문 드리고 싶습니다! 들여쓰기가 안 되어서 올라갔네요 ㅠㅠ..!! 수정해서 다시 올렸습니다 !
현재 Mac 이용중입니다. 8080 포트가 사용중이길래, 터미널 열어서 lsof -i: 8080 명령어 입력 후 해당 port 를 종료하는 명령어를 입력해도 계속 해서 8080 port 가 되살아납니다. 매번 프로젝트 만들 때마다 8081로 변경하는 게 너무 불편한데, 이런 경우는 어떻게 해결해야 할까요 ? 브라우저에 http://localhost:8080 을 입력하니 이렇게 나오는데 뭐가 문제일까요 ?
나도 코딩님 강의로 자바를 수강을 완료한 후 스프링 공부를 위해 자바 17 다운 스프링 다운을 받았는데 해당 화면이 되었습니다. 궁금한게 다시 하루에 한 번씩 나도 코딩님 강의를 복습하고 싶은데 자바 17에서 컴파일이 될까요? 똑같이 src 부분에서 (예) cha_04_ ) 이런식으로 작성 후 공부하면 될까요? 그전에 나도 코딩님강의로 공부한 javaworkspace 프로젝트 파일을 다시 불러올수는없는건가요? ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의 중 @Autowired public DiscountService(Map<String, DiscountPolicy> policyMap, List<DiscountPolicy> policies) { this.policyMap = policyMap; this.policies = policies; System.out.println("policyMap = " + policyMap); System.out.println("policies = " + policies); } 이 코드에서 Autowired로 DiscountPolicy에 해당하는 빈을 불러와 Map에 저장하는걸로 알고있는데 수업 내용 중 @Autowired는 타입으로 조회를 해 2개 이상인 경우에는 오류나 난다고 배웠습니다. 그렇다면 1개를 선택해야하는데 2개 이상이 있기 때문에 오류가 발생하는것이고 Map처럼 여러 개를 넣을 수 있는경우는 상관이 없는건가요?
안녕하세요! 스프링 MVC와 관련하여 궁금한 점이 있습니다. 스스로 만든 프레임워크에서는 다양한 형태의 헨들러를 다루기 위해 핸들러 어댑터 목록과 핸들러 매핑을 도입한 것으로 이해하고 있습니다. 스프링 MVC의 경우 99.9% RequestMappingHandlerMapping 과 RequestMappingHandlerAdapter를 쓴다고 강의자료에 나와 있는데요, 그렇다면 사실상 핸들러(컨트롤러)도 하나의 통일 된 형태를 가지고 있는건가요? 감사합니다.
http://boj.kr/ffa390ab1d0145a8a863f6733fdf21f0 k가 주어졌을 때, a n t i c은 무조건 배워야하니까 21개 중 k-5개를 뽑는 경우의 수에서 기저사례에서 최댓값을 갱신하는 방법으로 코드를 짰는데요..제 코드 시간 복잡도를 계산해보면 21C(k-5)*50*15로 계산했습니다(50은 단어의 최대개수,15는 k의 최대 범위). 궁금한 점은 1.저의 코드의 시간복잡도 계산을 저렇게 하는게 맞는지 2. 왜 시간초과가 나는지 모르겠습니다.