월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
아직까지는 JPA가 어떤 장점이 있는지 모르겠네요.
열심히 JPA강의 잘 듣고 있습니다. DB테이블은 FK로 연결되어 양방향 1개객체기준으론 단방향 2개, 주인 개념까지는 알겠습니다.분명 컨트롤은 앞선 강의에서 주인에서만 수정 가능한 걸로 알고 있는데.. 갑자기 read만 된다고 했던 거에 team쪽 member객체 세팅??영속성 컨텍스트에 없으니 객체개념에선 양쪽 다 값을 세팅해야한다는게 규칙 일관성이 없는 느낌이네요.테이블 2개 하는데도 신경 쓸 포인트가 요런데.. 테이블 10개 조인하면 이거 생각하다가 시간을 소비할 거 같은 느낌이 드네요.테이블 10개 조인시엔 부모, 자식 테이블 중에 FK갖고 있는 바닥자식이 주인이 될거 같은데요. 그렇다는건 2개씩 조인이 되는 양쪽 객체에 전부 세팅 해야할거같은 느낌적인 느낌.. JPA는 초짜라 제가 이해한 게 맞을까요?지적 부탁드립니다. 쿼리를 작성하지 않는 부분은 큰 장점이나 쿼리작성할 많은 부분을 결국 객체에 문법을 적용하는 느낌이라 아직은 장점을 잘 모르겠네요 ㅜㅜ.. 테이블 스키마를 보고 객체설계를 해야한다라는게 공수가 더 드는게 아닌가 생각되네요.
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 매핑시 서로 set, add로 추가해줘야한다고하는데 연관관계 주인 하나만 하면 왜 값이 안뜨는걸까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]10:21member.setUsername("member1")member.setTeam(team);em.persist(member)이렇게 하고em.find(Team.class,team.getId())를 하게 되면 어차피 1차캐시갔다가 없으면 db가서 데이터를 받아오는데team에 members도 변화가 되는게 아닌가요?team도 매핑이 된 상태이고 값이 변화가 된게 아닌가요? em.flush();를 하면 또 db에서 받아와지는거 아닌가요..열심히 들었다고 생각했는데 갑자기 어지럽고 해깔리네요..
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
jpa find(.class, primaryKey: ) 부분 궁금합니다.
안녕하세요!세팅 그대로 따라했는데 find인자값안에 파란색으로 동그라미 친것처럼 primaryKey가 자동완성이 안됩니다.. 아무리 찾아도 문제를 못 찾겠는데 혹시 짚이시는 부분이 있으실까요!?ㅠㅠ
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
member에서 orders 검색 자주 하지 않나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]보통 쇼핑몰 사이트에서 각 member(사용자)들이 자기가 무엇을 주문 했었는지 확인하기 위해 orders를 자주 보지 않나요? 그런데 왜 여기서는 member가 orders를 가지는 것이 의미가 없다고 하는지 이해가 잘 안돼요!
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Id가 IDEDNTITY일때 변경 감지 작동 질문이요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.Id 필드가 IDENTITY 전략일때 setUserName("C")라고 할 경우 변경 감지로 인해 update문이 쿼리되지 않고 insert 되는 이유가 JPA가 DB에 접근하기 전까지 PK값을 알수 없기 때문에 변경 감지가 작동하지 못하고 insert 쿼리만 날리게 되는건가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
영상이 한참전에 만든 영상같네요.
개인적으론 아쉽네요. JDK, JPA, H2 버전을 보니 최소 3년 이상 된듯.. javax가 jakarta로 넘어간게 2021년도 였나 그런데.. 1.8버전이면 한참된듯..일단 수업자료 받은걸로 참고하면서 진행하겠습니다.
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
영속성컨테스트는 메모리에 저장되는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]영속성컨테스트는 메모리에 저장되는건가요?1차 캐시라고 하길래cpu에 있는 캐시에 저장하는건가요?캐시라는게 정확한 의미가 뭔가요?제가 아는 캐시는 cpu에 있는 캐시를 알고있습니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
N+1 문제 관련 10:22초 부분 질문드립니다.
해당 부분에서 페치 조인을 하지 않는 이상 지연로딩을 하든, 즉시로딩을 하든 N+1 문제가 발생하게 된다고 하셨는데요. 즉시로딩을 하게되면 연관된 엔티티를 한번에 가져오기 때문에 N+1 문제를 피할 수 있지 않나요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
soft delete 라는 것을 알고 있습니다. 이에 대해 cascade 하게 삭제가 가능할까요?
만약에 Review 가 있고, Review 에 대해 좋아요 기능이 있습니다.기존 Hard Delete 시 좋아요 엔티티에 @ManyToOne 에 @OnDelete(action = OnDeleteAction.CASCADE) 를 사용 리뷰 삭제시 리뷰에 대한 좋아요도 삭제할 수 있었습니다. 그런데 Review에 대해 Soft Delete 시, 리뷰에 대한 좋아요는 Hard Delete로 삭제한다면 이를 어떻게 구현하면 좋을까요?? 1) Review가 delete 될 때마다 그냥 서비스 코드에 리뷰 좋아요 를 Hard delete 로 삭제하는 부분을 작성한다: @OnDelete 쓰다가 이거 쓰면 서러울 것 같아요.2) DB trigger 를 사용한다. : 애플리케이션에서 코드에서 명시해서 적용할 방법은 없나???3) EventLister 를 사용한다. : 이러면 Review 가 Update 될 때마다 @PostUpdate 해서 칼럼이 Deleted가 true인지 확인해야 되는데 .. Review 의 delete 칼럼이 업데이트 될때만 적용되는게 아니라 다른 칼럼이 업데이트 될때 이 부분을 항상 체크해주어야 해서 비효율적일것 같구! 4) 양방향 연관관계를 쓰기 싫은데 어거지로 써서 @OneToMany(cascade=remove) 를 사용한다. 1,2,3,4 다 마음에 안드는데 영한 님은 어떻게 사용하실까요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
AddreesEntity 업데이트 쿼리 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 내용에서 설명하신 부분과는 조금 거리가 있는 내용인 것 같습니다만... 의문점이 풀리지 않아서 질문을 남겨 봅니다. 1:N 단방향 연관관계에 대한 질문이 더 맞을 것 같습니다.강의에서 addressEntity 엔티티와의 연관관계를 OneToMany , 연관관계의 주인을 1쪽에 두셨는데, 쿼리를 보면 addressEntity 에 대한 insert 쿼리가 cascade 때문에 같이 날아가는데 이 시점에서 이미 member_id 즉 addressEntity 입장에서 fk 값이 되는 이 값을 이미 알고 있는걸까요 ? 만약 그렇다면 update 코드는 왜 또한번 jpa 에서 날리는 건지 궁금합니다. 연관관계 주인쪽의 값 변동에 따른 jpa의 추적 메커니즘상 쿼리가 한번 더 날아가는 것일까요 ?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
1대다 양방향 관계에서 질문있습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]1대다 양방향 관계가 있다면 필연적으로 List<다쪽 엔티티> lists=new ArrayList<>();가 존재합니다. 그런데 만약에 일쪽에서 조회하면 저장한 순서대로 나오는게 보장이 될까요?? 예를 들면 List<ResponseDto> dtos =new ArrayList<>();team.getMembers().stream.forEach(m->{ dtos.add(ResponseDto.from(m)) ;}뭐 이런식으로 하면 처음에 team 에 들어간 멤버 순서대로 dto 에 들어가는 그런 느낌일까요?? 잘 나오다가 순서대로 안나오는 경우가 있어서 질문드립니다. ㅠ
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
친구목록 테이블 설계관련 질문
현재 채팅시스템이있는 애플리케이션 개발중입니다.친구목록 테이블을 설계하고 있는데 연관관계 설정과 테이블 설계에 어려움이 있어 질문드립니다.멤버 클래스의 코드입니다.친구 클래스의 코드입니다.강의 내용처럼 N:M 을 1:N N:1로 뜯어서 설계를 하려하는데 1:N N:1 의 상태에서 1이 같은 테이블과 클래스여서 어떻게 해결할지 모르겠어서 질문드립니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
연관관계 주인
안녕하세요. 선생님 . 프로젝트 병행하며 JPA 내용 복습중인데요.강의 자료에서는 진짜 매핑 - 연관관계의 주인 (Member.team) 가짜 매핑 - 주인의 반대편 (Team.members)라 하셨습니다!! 제가 이해한 바로는 Member와 Team의 관계는 N : 1이고, 외래키를 갖고 있는 Member Entity가 연관관계의 주인이다. 라고 이해하였는데 자료에서는 Member.team이 주인이다 라는 것이 이해가 가지 않습니답!! 제가 이해한대로 머리속에 집어넣어도 무방할까요??
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
실전예제 3 - 다양한 연관관계 수강 중 Could not determine recommended JdbcType for Java type오류 발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]혹시 코드에 문제가 있는건가 싶어 수업도 두번 듣고 멈춰서 선생님코드와 비교까지 했는데 Exception in thread "main" org.hibernate.type.descriptor.java.spi.JdbcTypeRecommendationException: Could not determine recommended JdbcType for Java type 'jpabook.jpashop.domain.Member'이런 오류 메세지가 발생합니다... 원인을 어디서 찾아야 될지 모르겠어서 질문 남깁니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
cascade와 orphan removal이 헷갈려요 ㅜㅜ
Child child1 = new Child(); Child child2 = new Child(); Parent parent = new Parent(); parent.addChild(child1); parent.addChild(child2); em.persist(parent); em.flush(); em.clear(); Parent findParent = em.find(Parent.class, parent.getId()); // em.remove(findParent); findParent.getChildList().remove(0); tx.commit(); @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL, orphanRemoval = true) private List<Child> childList = new ArrayList<>();cascade 옵션과 orphanRemoval옵션을 각각 켜보기도 하고 둘다 켜보기도 하면서,주석 표시해 둔 em.remove와 그 아랫줄에 해당하는 코드를 번갈아 주석처리해보며 cascade와 orphan removal의 차이에 대해 알아보려고 하는데 할 수록 헷갈리네요 ㅜ다시 한 번 정리해주실 수 있을까요? 강의를 다시 봐도 헷갈리는 지점이 있어서 질문드립니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
프록시 강의 38:27 질문드립니다. (em.close())
강의에서는 em.close()했을 때도 예외가 발생한다고 하셨고, 저도 em.close()하면 영속성 컨텍스트가 종료되기 때문에 프록시 초기화 시 문제가 생길것이라고 생각했지만 실제로 해보니 예외가 발생하지 않아서 질문드립니다. Member member1 = new Member(); member1.setUsername("member1"); em.persist(member1); em.flush(); em.clear(); Member reference = em.getReference(Member.class, member1.getId()); System.out.println("reference.getClass() = " + reference.getClass()); // em.detach(reference); // 준영속 상태로 만들어버림 // em.clear(); // 영속성 컨텍스트를 완전히 초기화 em.close(); // 영속성 컨텍스트를 완전히 종료 reference.getUsername(); tx.commit();
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
복붙 코드 자료
강의중간중간 선생님이 복붙하시는 코드들은 (의존성 등) 따로 올라오는곳이 있나요?보고 따라쳐야하는지 아니면 따로 공유되는곳이 있는지 궁금합니다
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
자바파일생성안됨
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.저 빨간색 폴더안에서는 자바파일이 생성이 안되는데 똑같이 디렉토리를 생성하면 가끔 저렇게 빨갛게 뜨면서 자바파일이 안만들어지는데 원인이 무엇인가요??해결방법도 알려주세요!
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
강의 1:40 코드 질문
해당 코드의 빨간 줄이 생기는데 왜 그럴까요?실행 결과는 잘 나옵니다. Unchecked assignment: 'java.util.List' to 'java.util.List<java.lang.Object[]>'
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
AddressEntity 사용이유
값 타입인 Address를 감싸고 있는 AddressEntity를 따로 만들어서 일대다에서 다의 역할을 해주고 있는데 이렇게 하지 말고Address자체를 @Entity로 만들어서 일대다에서 "다"의 역할을 하게 해도 되지 않나요? AddressEntity를 쓰는 이유가 무엇인가요?