월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
식별자의 의미
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]값타입에는 식별자가 없다고 하는데그래서 식별자가 뭔가요? 식별하는 id같은거라고 생각하고 있는데 정확히 무슨의미로 넣어뒀는지 그리고 식별자의 의미를 모르겠습니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
member.getAddressHistory().add(new ~~~) 는 getter는 조회용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]member.getAddressHistory().add(new ~~~) 는 getter는 조회용으로 쓰는걸로 아는데 .add해서 값을 변경할 수 있나요?getAddressHistory()는 AddressHistory()를 조회한다. 근데.add를 통해서 넣는다.... 뭔가요?뭔가 생략된 부분이 많아서 해깔리네요.. 이번강의는 굉장히 어렵네요
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
mapped by 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]mapped by를 one to many에서 해줘야하는지many to one에서 해줘야하는지 계속 해깔리는데이걸 쉽게 생각하는방법이 없을까요? 만약에 외래키로 가지고 오는건 many to one 이니외래키로 가지고 온건 실체고 반대쪽은 one to many이니 mapped by를 해줘야 한다.인거 같은데 만약에 mapped by를 안쓰면 어떻게 되는건가요? mapped by의 정의가 뭔가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
테이블 컬럼 생성 순서 문의
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]위와 같이 소스를 구성하고 생성 시 age가 맨 처음에 생성됩니다.검색해보니 알파벳 순으로 만들어진다고는 하는데pk또한 순서가 밀려서 문의드립니다 <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="true"/> <property name="hibernate.jdbc.batch_size" value="10"/> <!--쓰기지연 SQL에 저장될 개수, 버퍼--> <property name="hibernate.hbm2ddl.auto" value="create" />설정은 위와 같습니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
다대다 관계에 대해서 몇가지 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]비지니스 요구 사항에 맞게 엔티티를 설계할 때 비지니스가 복잡하고 현실과 맞게 설계하기 위해서 고민하다 보니 다대다 관계가 많아지는 것 같습니다 배운대로 OrderItem과 같이 모두 중간에 엔티티를 만들어 1대다로 바꾸었습니다만 몇가지 의문이 드는 부분이 있어서 질문드립니다. 다대다 관계를 위해 중간 엔티티와 테이블을 만들다 보니 의미없는 엔티티와 테이블이 많아지는 것 같습니다. 이런 경우 설계가 잘못되었다고 판단할 수 있나요OrderItem과 같은 중간 엔티티에 대한 리포지토리를 만들면 조회가 편해지고 조인 횟수를 줄일 수 있을 것 같습니다. 그런데 이런 것은 설계적으로 바람직하진 않은가요? 언제나 답변 감사합니다
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
실전예제 1 - 요구사항 분석과 기본 매핑에서 단축키 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요! 강의 9분 8초 쯤에 이거 단축키 어떤 키 쓰신걸까요 ?? 알고싶습니다 ㅜㅜ
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
트랜잭션에 대해서 질문있습니당 ㅠㅠ
[질문 내용]동시성 문제를 공부하던 중 한 트랜잭션 내에서A 와 C 의 중간테이블인 B 를 저장 이후 C의 칼럼을 변경감지를 통해 업데이트하려고 수정하는 상황입니다 찾아보니B를 저장할 때 외래키인 C 에 대해 SLock 을 걸더군요!디버깅해보니@Transactional이 속한 범위 내에서는 쭉 C에 대해 SLock 을 걸더라고요! 근데 제가 알기로 C 에 대해 update 쿼리가 날라갈 때는 XLock 을 거는 걸로 알고있거든요! 결국 C에 대해 @Transactional 이 종료될 언저리 쯤,즉 변경 감지를 통해 C에 대해 update 쿼리가 날라갈때 SLock 에서 XLock 이 되는 과정을 직접 눈으로 보고 싶은데 혹시 어느 클래스의 어떤 메소드에서변경감지를 통해 flush 를 하고 commit 을 하는지 알려주실 수 있을까요??
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPA flush 와 commit 의 차이가 뭔지 이해가 안갑니다.
제목 그대로입니다. 블로그 찾아보니 flush 는 영속성 컨텍스트의 내용을 DB에 동기화 시키는 것, 이라고 하고 커밋은 트랜잭션을 종료하는데 쓴다고하더라구요!. @Transactional public void likePost(final Member currentMember,final Long postId){ try{ postLockRepository.getLock(postId.toString()); final Post post = findPost(postId); //post 의 작성자와 좋아요를 누르려는 사람의 ID 값이 같을 떄 예외 if (post.getMember().getId() == currentMember.getId()) { throw new NotFoundException(ErrorCode.MESSAGE_NOT_FOUND); } //이미 눌러져 있을 때 deleteLikePost 수행, 없다면 saveLikePost 수행 likePostRepository.findByMemberIdAndPostId(currentMember.getId(), post.getId()) .ifPresentOrElse(likePost -> { deleteLikePost(likePost, post);}, () -> { saveLikePost(currentMember, post); System.out.println("pp"); }); } finally{ postLockRepository.releaseLock(postId.toString()); } } private void saveLikePost(final Member member,final Post post){ LikePost lp= LikePost.builder() .post(post) .member(member) .build(); likePostRepository.save(lp); System.out.println("gg"); post.increaseLikeCount(); postRepository.saveAndFlush(post); System.out.println("kk"); }이 코드에서 saveLikepost 를 실행하면 post 에 대한 좋아요 가 하나 증가합니다. 그리고 saveAndFlush를 통하면 update 쿼리가 바로 나가더라구요!. 이 같이 쿼리를 발생시키고 flush 를 했으니 영속성 컨텍스트에 있는 post 의 like_count 는 1이 증가되어야 합니다. 또한 likePostRepository.save() 도 역시 insert 쿼리가 나가고요!질문 요약: 저희가 알고있는 개념대로라면 영속성 컨텍스트에 있는 @Transactional 안에 있는 Save를 한 대상(LikePost) 와 @Transactional 안에 있는 SaveFlush 대상 역시 FLUSH를 통해 DB와 동기화 시킨다고 생각했습니다. (DB에 동기화시켰으니까 insert 하는 대상은 DB에 생겨야 하고, update 한 거는 update 가 제대로 반영이 되어야 한다고 생각했습니다) 그런데 위 과정에서 디버깅을 해보니(하이버네이트로 쿼리가 날라가는 것은 확인이 되었습니다) 실제 DB에 데이터가 들어가지 않고 @Transactional 이 끝나야 DB에 반영이 되더라고요!! 제가 동기화에 대해 이해를 잘 못하고 있는 걸까요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
No Persistence provider for EntityManager named hello
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]실전예제1을 따라하다가이런 에러가 나는데 이유를 모르겠어요,, 어떻게 하면 해결할 수 있을까요? 그리고 h2DB 연결도 안되어서 찾아봤더니url을 jdbc:h2:~/jpashop 이렇게 하면 된다고 해서 이렇게 해서 db접속을 했고,persistence.xml에도 url을 위와 동일하게 설정해두었습니다.프로젝트 압축파일 구글드라이브에 올려놓았습니다!도움 부탁드립니다.https://drive.google.com/file/d/1S5ytUHGS0cpr7LSvlFF5E8qyiTwjlOs-/view?usp=sharing
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
DB 자동 생성 기능이 동작하지 않습니다 도와주세요ㅠㅠㅠ
예제로 올려주신 ex1-hello-jpa가 Maven 기반으로 되어있어서 Gradle 기반의 예제로 학습해보기 위해 최대한 비슷한 예제 파일을 만들었습니다. 하지만 이 예제에서는 애플리케이션 실행 시 DB 자동 생성 관련 부분이 아예 동작하지 않습니다. (로그도 뜨지 않고, 실제로 쿼리도 수행되지 않습니다.)프로젝트를 암만 뒤져봐도 JDBC 연결 정보도 다 전달했고, @Entity까지 다 했는데 왜 동작을 안 하는지 정말 모르겠습니다.https://drive.google.com/file/d/1epXZLqjRw8ssBAv6zKaVM7T7IpQ24hPW/view?usp=sharing프로젝트 파일 링크입니다. 고수분들 도와주시면 정말 감사하겠습니다 ㅠㅠㅠ
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
merge과 remove, cascade에 대한 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]코드 먼저 보여드리겠습니다public void execute(){ EntityManager em = entityManagerFactory.createEntityManager(); EntityTransaction tx = em.getTransaction(); try { tx.begin(); Writing writing = new Writing("A"); Image image1 = new Image("order1"); Image image2 = new Image("order2"); image1.setWriting(writing); image2.setWriting(writing); writing.getImageList().add(image1); writing.getImageList().add(image2); em.persist(writing); em.flush(); em.clear(); Writing findWriting = em.find(Writing.class, writing.getId()); List<Image> imageList = findWriting.getImageList(); for (Image image : imageList) { em.remove(image); // 실행? 실행안됨? } System.out.println("=============persist start =============="); em.persist(image1); System.out.println("=============persist stop =============="); tx.commit(); }catch (Exception e){ e.printStackTrace(); tx.rollback(); }finally { em.close(); } }public class Writing { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "writing_id") private Long id; @Column(name = "writing_name") private String name; @OneToMany(mappedBy = "writing", cascade = CascadeType.ALL) private List<Image> imageList = new ArrayList<>();public class Image { @Id @GeneratedValue @Column(name = "order_id") private Long id; private String OrderName; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "writing_id") private Writing writing; public Image(String orderName) { OrderName = orderName; } }제가 여기서 궁금한건, for (Image image : imageList) { em.remove(image); // 실행? 실행안됨? } 이 부분부터 인데,Cascade.ALL로 설정해서, Writing과 image가 객체 관 연관관계가 설정되어 있기때문에 cascade 입장에서는 persist 하려하고, em.remove 입장에서는 삭제하려하기에 충돌이 일어나서 결국 삭제되지 않는 건 이해 했습니다.이때 em.clear로 영속성 컨텍스트에 있는 writing와 image1, image2가 현재 detached된 상태가 맞다고라고 가정하고 제 질문은 다음과 같습니다.1. em.remove(image) 자체의 코드가 "실행"은 되어서 detached된 image1, image2를 removed, 즉 영속성 컨텍스트에서 아에 제거 된 상태로 만든다라고 이해한게 맞는지?2.그리고 detached된 엔티티이든, persist 되어있는 엔티티이든 둘 다 remove 하면 결과값은 "영속성 컨텍스트에서 제거"라는 것으로 똑같은지?3. 만약 removed가 되어있다고 하면, em.persist가 다음과 같은 오류와 함께 실행 안되는 이유... 다음 에러에는 detached된 엔티티는 persist 할 수 없다는데 그렇다면 실제로 remove 된게 아닌지? 그렇다기엔 em.merge(image1)를 하면 새로운 객체를 생성해서 DB 에 저장하는데 ㅠ =============persist start ==============jakarta.persistence.EntityExistsException: detached entity passed to persist: com.example.jpatest.entity.Image...
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPQL과 SQL 차이가 잘 이해가 안갑니다.
JPQL은 엔티티 객체를 대상으로 쿼리한다고 하고 SQL은 DB 테이블을 대상으로 쿼리한다고 하시는데이 말이 잘 이해가 안 갑니다. Jpql을 통해 결국 SQL을 생성하는것도 이해했고 Jpql이 특정 DB에 종속적이지 않다는 말도 이해했습니다. 다만 검색 쿼리로서 Jpql의 용도를 하기 위해서는 Jpql도 결국 DB 테이블을 대상으로 쿼리를 하는게 아닌가요?엔티티 객체를 대상으로 쿼리를 한다는 말이 잘 이해가 안갑니다. 엔티티 객체라는 말 자체가 혼동이 됩니다.저는 평소 엔티티라는 말을 RDB 관점에서 다른것들과 구별을 가지는 DB에서의 클래스 정도로 이해하고 있습니다. 여기 JPA강의에서 엔티티는 @Entity 어노테이션을 통해 JPA에서 관리하고 RDB의 테이블과 1대1로 매칭되는 단위 정도로 이해하고 있습니다. 거기다가 객체라는 용어도 평소 프로그래밍에서 쓰던대로 클래스를 구현한 실체정도로 생각한다면, 여기 JPA강의에서 엔티티 객체라는 말은 한 번이라도 영속화를 시켜준 실체라고 이해해야 하나요? 정확한 정의가 궁금합니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
1차 캐시와 트랜잭션 격리 수준 관련 질문
안녕하세요. 자바 ORM 표준 JPA 프로그래밍 책으로 학습 중에 "1차 캐시를 통해 Repeatable Read 수준의 트랜잭션 격리 수준을 제공한다"는 내용을 보고 궁금증이 생겨 질문 남깁니다. 격리 수준이 Read-Committed와 Repeatable Read인 경우, 언두 로그를 이용한 MVCC로 한 트랜잭션 내에서 반복적인 읽기를 보장한다고 알고 있습니다.하지만 이 둘을 성능 관점에서 봤을 때 언두 로그에 있는 Row를 삭제하는 범위가 달라져 상대적으로 Repetalbe Read가 성능이 더 안 좋다고도 알고 있습니다.결과적으로 1차 캐시를 통해 애플리케이션 레벨에서 Read Committed를 보장해 주는데, 굳이 MySQL 서버에서는 불필요하게 언두 로그에 더 많은 Row를 저장하면서까지 Repetable Read를 설정할 필요가 없다고 생각이 됐습니다. 따라서 MySQL 8.0 기준으로 JPA를 사용하면, 트랜잭션 격리 수준을 Repetable Read로 설정하지 않아도 되나요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
대리키와 복합키 관련하여 질문 있습니다.
안녕하세요. ORM 설계를 진행할 때 비식별 관계를 사용하고 기본 키는 Long 타입의 대리 키를 사용하는 것을 추천한다고 책에서 읽었습니다. 장바구니, 위시리스트 테이블을 설계 할때도 대리 키를 사용는 것이 좋을까요?아니면 사용자 ID, 상품 ID로 복합키를 사용하는 것이 좋을까요? 어떤 상황에서 복합키를 적절하게 사용해야 하는지 판단을 하지 못하겠습니다.아니면 신규 테이블을 설계할 때는 전부 대리 키를 사용하는 것이 적절 할까요? 그리고 대리 키를 사용할 때 한가지 더 궁금한 부분이 있습니다.대리 키는 비즈니스와 아무 관련이 없다고 하셨는데, 이 부분이 잘 와닿지 않아서요..실제 비즈니스와 관련있는 키가 있는건지.. 아니면 비즈니스에서 사용하는 키를 따로 추가로 생성하고대리 키로는 조회, 수정, 삭제를 진행하면 안되는걸까요? 감사합니다.
- 미해결자바 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를 사용하는 것으로 알고 있는데 이 부분이 헷갈려서 정리가 잘 안됩니다 ㅠㅠ 설명 해주시면 감사하겠습니다! ==============="인스턴스"를 간과하고 있었네요 이해 되었습니다!