월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Oracle12cDialect 오류 해결 방법
(사진)
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
다대다를 위해서 MemberProduct테이블을 만들어서 다대1로 할때 mapper를 어느 테이블로 해줘야하나오?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]membreproduct 클래스를 만들어서member클래스와 다대일을 할때두클래스중에 어느 클래스에 mapper를 넣어야하고 주인을 설정해야할지 갑자기 뇌정지가 와 버렸습니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
TABLE_PER_CLASS 전략을 사용했는데 ITEM 테이블이 생겨요.
// JpaMain.javapackage hellojpa; import jakarta.persistence.*; import java.util.List; public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); //code try { Movie movie = new Movie(); movie.setDirector("aaaa"); movie.setActor("bbbb"); movie.setName("바람과함께사라지다"); movie.setPrice(10000); System.out.println("=== BEFORE ==="); em.persist(movie); System.out.println("=== AFTER ==="); System.out.println("movie.getId() = " + movie.getId()); em.flush(); em.clear(); System.out.println("movie.getId() = " + movie.getId()); Movie findMovie = em.find(Movie.class, movie.getId()); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); } emf.close(); } } // Item.javapackage hellojpa; import jakarta.persistence.*; @Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public abstract class Item { @Id @GeneratedValue private Long id; private String name; private int price; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } } // Book.javapackage hellojpa; import jakarta.persistence.DiscriminatorValue; import jakarta.persistence.Entity; @Entity public class Book extends Item { private String author; private String isbn; } // Movie.javapackage hellojpa; import jakarta.persistence.DiscriminatorValue; import jakarta.persistence.Entity; @Entity public class Movie extends Item { private String director; private String actor; public String getDirector() { return director; } public void setDirector(String director) { this.director = director; } public String getActor() { return actor; } public void setActor(String actor) { this.actor = actor; } } // Album.javapackage hellojpa; import jakarta.persistence.DiscriminatorValue; import jakarta.persistence.Entity; @Entity public class Album extends Item { private String artist; } TABLE_PER_CLASS 전략을 사용했는데도 ITEM 테이블이 생기고 ITEM 테이블에 값이 들어갔는데 왜 이러는 건가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
다대다 부분이랑 이해가 안되는부분 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다대다를 하는데@jointable로 새로운 테이블을 만드는건 이해하는데새로운 테이블에 외래키를 넘겨주는데왜 한쪽 테이블에서는 mapper를 왜 쓰는지 이해가 안되네요. 예) Category 클래스안에 다대다라jointable를 사용해 새로운 테이블을 만든건 이해하는데근데 item클래스는 새로운 테이블에 외래키로 넘기는데item클래스는 도대체 mapper를 왜 쓰는건가요?이부분이 자세히 안 나와 있어서 의문만 생기네요 단순히 mapper가 읽기전용으로 쓰는걸로 아는데다대다 여기서는 그림조차 그려지지가 않네요ㅠㅠitem은 읽기전용? category를 주인장? 인건가요? parent: category child: list 이건 뭔가요? 다른클래스랑 연관관계도 없는데 갑자기 추가되서 혼동이 되네요 category_ITEM 테이블이 만들어지면서 category_ID, Item_ID가 자동으로 만들어지는데 저희가 컬럼을 만들지도않았는데 어떻게 자동으로 만들어지는지 어디부분에서 이루어지는건지 모르겠네요
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
DB저장시 이전 내용 삭제 됨
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]현재 Hello JPA - 애플리케이션 개발 강의를 수강 중입니다.12:50에서 2L과 HelloB로 해서 돌렸는데 1, HelloA가 사라지고 2, HelloB가 들어갑니다.강의에서는 1, HelloA가 남아있는데 혹시 제가 뭘 잘못 설정한걸까요? 콘솔창에Hibernate: drop table if exists Member cascade 라고 뜨긴합니다..
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
값 타입의 비교 ==과 equals부분이 이해가 안갑니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]전에 배웠던 내용과 혼란이 와서 문의남깁니다!값 타입의 비교를 수강 중동일성(identity) 비교 : 인스턴스의 참조 값을 비교, ==사용동등성(equivalence) 비교 : 인스턴스의 값을 비교, equals 사용 이라고 가르쳐 주셨는데 int, char같은 기본형 타입은 call by value로 인스턴스의 값을 비교하고 ==을 사용하지 않나요?그리고 String의 경우 참조형으로 call by Reference로 인스턴스의 참조 값을 비교하고 equals를 사용하는 것으로 알고 있는데 이 부분이 헷갈려서 정리가 잘 안됩니다 ㅠㅠ 설명 해주시면 감사하겠습니다! ==============="인스턴스"를 간과하고 있었네요 이해 되었습니다!
- 미해결자바 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'이런 오류 메세지가 발생합니다... 원인을 어디서 찾아야 될지 모르겠어서 질문 남깁니다.