월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
4 : 48초에 쿼리 날라가는 거 질문입니다.
제가 셋팅을 다르게 한 건지 모르겠는데콘솔창에 create, insert쿼리는 뜨는고업데이트 쿼리는 따로 안 뜨는데이유를 알 수 있을까요?try { Address address = new Address("city", "street", "zipcode"); Member member1 = new Member(); member1.setUsername("member1"); member1.setHomeAddress(address); member1.setWorkPeriod(new Period()); Member member2 = new Member(); member2.setUsername("member2"); member2.setHomeAddress(address); member2.setWorkPeriod(new Period()); member1.getHomeAddress().setCity("newCity"); em.persist(member1); em.persist(member2); tx.commit();이건 똑같이 작성했씁니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
임베디드 타입에서 어떻게 Entity를 쓰는 건가요?
Person 클래스입니다.package hellojpa; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Person { @Id @GeneratedValue @Column(name = "person_id") private Long id; private String name; 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; } }Address 클래스입니다.package hellojpa; import javax.persistence.*; @Embeddable public class Address { private String city; private String street; private String zipcode; @OneToOne @JoinColumn(name = "person_id") private Person person; public Address() { } public Address(String city, String street, String zipcode) { this.city = city; this.street = street; this.zipcode = zipcode; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } public String getZipcode() { return zipcode; } public void setZipcode(String zipcode) { this.zipcode = zipcode; } }제가 연관관계 매핑에 대해서 이해를 못하고 있는 건가요? person을 1:1 매핑을했다고 생각했습니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
테이블이 아닌 엔티티객체를 대상으로 쿼리한다<< 이해가 안돼요
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]List<Member> result = em.createQuery("select m from Member as m",Member.class) .getResultList();위 내용을 설명하시면서 JPA는 절대 테이블 대상으로 쿼리를 짜지 않으며, 따라서 select m from Member as m의 Member는 객체이다. 라고 설명하셨는데 이해가 잘 안돼요...from 뒤의 Member가 테이블의 Member가 아니라는 이야기겠죠? 그럼 @Entity로 관리되는 Member클래스를 말하나요? 테이블을 가리키는게 아니면 JPA는 어떻게 수많은 테이블중 Member테이블을 콕 찝어서 쿼리를 넘기나요? 엔티티명과 테이블명이 같아서,,,인가요? 근데 제 머리가 이해하기로는 form Member의 Member가 테이블명이여서, Member테이블의 모든내용을 가져와 m, 즉 Member객체에 집어넣는다고 이해가되거든요. 만약 저 Member가 엔티티객체라면... 엔티티객체엔 아무것도 없는데 거기다가 select m을 한다고해서 결과가 뜰수가 있는건가요...ㅜㅜ
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1. 지연로딩 시, DB에서 직접 조회가 아닌 캐시 내에서 효율적으로 데이터를 조회하기 위해 프록시 객체가 필요하다고 이해했는데 맞을까요?2. JPA에서 == 비교는 항상 참이여야 한다고 하셨는데 같은 객체에서 가져온 동일한 데이터임을 확인하기 위해서 그런건가요?3. 즉시로딩에서는 프록시 객체를 사용하지 않고 DB에 직접 접근해서 join을 하는 것인가요?4. getSingleResult()에서 에러가 발생해서 까다롭다면 getResultList() 를 사용하면 되지 않나요? getSingleResult() 를 사용해야 하는 이유가 따로 있을까요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
실행할 때마다 테이블 drop, create 가 됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]소스 실행할 때마다 테이블이 drop 되었다가 create가 되어서 member 테이블에 있던 데이터가 전부 사라져서 update가 안되는것 같은데.. 이거 어떻게 하면 될까요...?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
현업에서 데이터베이스 스키마 자동 생성 기능을 운영 장비에서 사용하지 않는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]데이터베이스 스키마 자동 생성 부분 강의 관련해서 궁금한 점이 생겨 질문 드립니다.강의에서 생성된 DDL은 개발 장비에서만 사용해야 하며, 운영 장비에서는 사용하면 안 된다. 라고 말씀해주셨습니다. 그리고, 생성된 DDL은 운영서버에서는 사용하지 않거나, 적절히 다듬 은 후 사용 이라고 강의 자료에 나와 있는데요.그렇다면, 실제 현업에서는 운영 서버에 새로운 테이블을 create 하거나, 기존 테이블을 update(칼럼 추가 혹은 변경 등...) 하는 경우에 어떻게 하는지 궁금합니다. 강의 내용 + 서칭에 따르면, 로컬에서 DB 스키마 자동 생성 -> 검증 및 정제 -> 최종 스키마를 DB 툴을 이용해서 추출 -> 최종 스키마인 "create table ~~"을 테스트 DB에 적용(이 때, JPA 를 통해서가 아닌, 스키마 자체를 적용해야 함) -> QA 진행 , 검증 및 정제 -> 최종 스키마를 DB 툴을 이용해서 추출 -> 최종 스키마인 "create table ~~"을 테스트 DB에 적용(이 때, JPA 를 통해서가 아닌, 스키마 자체를 적용해야 함)을 운영 장비에 적용 하는 방식으로 진행하는 걸까요? (물론, 여건에 따라, 테스트 서버도 JPA DB 스키마 자동 생성 기능으로 처리할 수도 있을 듯 합니다.)create 뿐만 아니라, update 또한 운영서버에 적용하면 안되며, update 또한 테스트서버에 적용하는 것은 지양한다고 하셨습니다. 운영 서버의 소스코드가 (JPA DB 자동 스키마 생성기능을 통해) 테스트 서버, 운영 서버의 DB create, update 권한을 가진다는 것 자체에 대해 우려하시는 건가요? 아니면, DB 관련하여 컨트롤하는 기능 중, JPA 에서 설정하지 못하는 것이 있어서 그런건가요? 말씀해주신 결과적인 사건들을 통해 위험하다 는 것은 알겠는데, 그 구체적인 이유를 설명하라고 한다면, 아직 정확하게 말 할 수 없을 듯 하여, 질문 남깁니다.긴 글 읽어주셔서 감사합니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JpaMain 실행시에 table drop 순서 설정
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)연관관례 매핑 설정을 하고 JpaMain을 실행했을때 처럼 create로 설정하면 이미 존재하는 table은 drop하고 새로 create하잖아요. 그런데 각 테이블에 존재하는 연관관계 때문에 drop이 실패하는 경우가 생깁니다. 예를 들어 실전 예제3 강의 기준으로 매핑 설정 후 실행을 했을 때 OrderItem보다 Item drop이 먼저 실행이 되어 쿼리 실행에 오류가 생기는데요 이와 관련하여 drop, create 실행 순서를 설정할 수 있을까요??(현재는 직접 table을 순서대로 drop하고 실행하고 있습니다.)[질문 내용]여기에 질문 내용을 남겨주세요.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
코드 복붙 자료 어디서 받을 수 있을까요?
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]여기에 질문 내용을 남겨주세요. 자바 ORM 표준 JPA 프로그래밍 - 기본편hello jpa - 프로젝트생성 강의에서강사님께서 복붙해서 올리시는 코드들 따라할 때 직접 쳐야하는 건가요 아니면 복사할 수 있게 제공되나요? 어디서 찾아야 할까요?(ex. META-INF 에 넣는 코드들)
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
crud질문
쓰기 지연 sql저장소에서 commit을 한번에 하는 데 select는 1차캐시에서 가지고 오는 건가요?한 트랜잭션 안에 insert 와 select를 동시에 할 경우, Team team = new Team(); team.setName("TeamA"); em.persist(team); // System.out.println("team.getId() = " + team.getId()); // System.out.println("team.getName() = " + team.getName()); // // Member member = new Member(); member.setUsername("member1"); member.setTeam(team); System.out.println("==Before--"); em.persist(member); System.out.println("==after--"); // em.flush(); //현재 영속성 컨테스트에 있는것을 다 날려 // em.clear();//영속성 컨테스트 초기화 // //객체지향적이지 않은 방법 // Member findMemner = em.find(Member.class, member.getId()); // Long findteamId = findMemner.getTeamId(); // Team findTeam = em.find(Team.class, findteamId); // Member findMemner = em.find(Member.class, member.getId()); Team findteam = findMemner.getTeam(); System.out.println("findteam.getName() = " + findteam.getName());findteam.getName()의 값이 나오는 이유가 1차 캐시에 저장된 @id에서 id값을 가지고 오기 때문에 commit되기 전(insert) 되기 전에조회(select)문이 실행가능해지는 건가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
한글깨짐
project 만들때마다 계속 한글깨지는데 project만들떄마다 계속 setting 해주어야하나요? <!-- ?? --> <!-- ????? ? ?? ??-->
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
h2 data insert 문제
h2 data에 upload 되지 않아 문의 드립니다.em.find에서 객체가 key값이 나오는것이 아닌 object로 나와 문의 드립니다. persistentUsername은 강의에서 userName으로 변경할때 저는그냥 변경하지는 않았습니다만, Object로 나와 다른 문제가 있는지 해서 여쭈어 보게 되었습니다.
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
준영속 상태 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 준영속 상태 강의를 듣던중 잘 이해가 안가서 질문올립니다 ㅠㅠ강의 6분경에try문안에서 em.clear()를 함으로서영속성 컨텍스트를 완전히 초기화 했는데커밋되기 전이므로 db에 아무런 값이 없을텐데Member member2를 선언했을때 왜 1차 캐시에서 값을 가져올수 있는건지 궁금합니다..제가 뭔갈 잘못이해하고 있는거 같은데도와주시면 감사하겠습니다!!!
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
insert 출력이 안돼요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 Hello JPA개발 강의를 듣던중insert를 날려도 출력이 안되고그냥 콘솔에 출력해도 출력이 안돼서 도저히 뭐가 문제인지 모르겠어서 질문남깁니다.. 패키지 구조입니다persistence입니다 pom.xml입니다 member클래스입니다h2는 1.4.200버전으로 받은거같아요
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
jpa hibernate.dialect( DB방언) 바꾸고 안됩니다.
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> 에서 Mysql방언 변경 <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/MySQL5Dialect로 바꾸니까 안됩니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
detach, remove의 차이
안녕하세요 수업을 듣다 궁금한 게 생겨 질문합니다!!detach와 remove 메서드를 비교하면서 헷갈리는 부분이 생겨났습니다!!원래는 persist가 호출된 시점에 SQL 쓰기지연 저장소에 insert 쿼리가 저장되는 것으로 이해했지만 detach()가 호출됐을 때 insert문이 나가지 않는 것을 보고 저는 persist가 호출됐을 때 SQL 쓰기지연 저장소에 insert 쿼리가 저장되는 것이 아니라 flush를 호출할 때 1차 캐시에서의 변경사항(스냅샷 비교 또는 새로운 엔티티 등록)으로 인해 insert 쿼리가 나가는 것이 아닌가로 생각했습니다.하지만 remove를 호출했을 때 insert문이 나가고 delete문이 따로 나가는 것을 보고 헷갈리기 시작했습니다. 만약 변경 감지 기능이라는 것이 기존의 1차 캐시에 저장된 엔티티와 스냅샷을 비교하여 다른 부분을 update 쿼리를 자동으로 실행해주는 기능이라 생각한다면 위의 remove 실행 시 DB로 보내진 쿼리가 이해가 됩니다. 새로 등록한 것과 삭제하는 것은 스냅샷으로 비교할 수 없기 때문에 persist나 remove 호출 시점에 따로 SQL 쓰기지연 저장소에 쿼리를 저장할 수 밖에 없다라고 생각하기 때문입니다. 하지만 이렇게 생각했을 경우 위의 detach 실행 시 쿼리가 이해가 안됩니다.. 제가 어디서 헷갈리고 있는 걸까요??
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
연관관계의 주인을 양쪽 모두 설정할 경우
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]일대다[1:N] 강의의 16분 29초 쯤에 연관관계의 주인이 양쪽에 모두 있으면 망한다라는 언급이 있으신데, 순서가 꼬이거나 예측이 안된다는게 구체적으로 어떤 의미인지 예시가 있을까요?정말 단순하게 생각하면 어쨋든 연관관계의 주인이 아닌 쪽에서 mappedby를 통해 읽기 전용으로 설정하지 않아도 Member에서 추가하나 Team에서 추가하나 반영될 수 있다면 오히려 좋지 않나 싶은 의구심이 들어서 질문드립니다감사합니다 :)
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 1. 준영속 상태가 되면 영속성 컨텍스트의 1차 캐시에는 존재하지 않고 DB에만 존재하는 걸로 이해했는데 맞을까요? 2. @Entity 어노테이션을 붙여주면 엔티티 팩토리가 그 클래스를 관리하게 되는게 맞는지, 그렇다면 DB 연결을 안하고 먼저 @Entity 를 통해 테이블을 생성한 후, 마지막에 DB 연결을 해주어도 문제가 없는 것인지 궁금합니다. 3. H2 데이터베이스를 localhost 가 아닌 도메인 주소(?) 로 접속하면 다른 PC의 사용자들도 DB 관리를 같이 할 수 있는 건가요? 4. @ManyToOne 은 @JoinColumn 과 같이 쓰고, @OneToMany 는 MappedBy 랑 같이 쓴다고 이해해도 괜찮을까요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
ManyToOne 양방향 매핑에 대한 질문입니다.
설명에서 사용하신 멤버와 팀관계에서 멤버N : 1팀이라고 하고 만약 팀A에 속한 사람을 조회하면멤버를 통해 조회하면 일일이 멤버객체에서 팀A인 사람을 골라서 조회되는 것으로 알고있는데, 만약 팀을 통해 조회하면, 팀A에있는 members를 가져오는데 어떻게 동작되는건가요?? 팀은 mappedBy로 설정해두었습니다.둘다 같은 동작이 이루어지나요??
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
allocationSize 관련하여 질문올립니다!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 잘모르겠습니다 ㅎㅎ..3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]1. 데이터 삽입 순서 관련 질문서버가 여러 대 있다고 가정했을 때, 각 서버에 하단의 이미지처럼 메모리에 50개씩 값을 올려둘 경우, DB에 들어가는 데이터가 순차적으로 안들어가지 않나요?구체적으로 생각해보지는 않았지만, 순차적으로 데이터가 들어가지 않을 경우에 대한 이슈가 있지 않을까 싶어서 질문드립니다!2. 중간에 비어있는 구간 관련 질문위와 마찬가지로 서버가 여러 대 있고 각 서버마다 50개씩 메모리에 할당했다고 가정했을 때, 특정 서버가 죽게되면 죽은 서버의 메모리가 가지고있던 개수만큼의 공백이 생기지 않나요?(거의 그럴 일은 없겠지만) 서버가 시도때도없이 다운될 경우 아무리 Long 타입을 지정했음에도 수가 넘어가는 케이스가 생기지 않을까 싶습니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
연결 에러, 파일에러 안되는 사람 보소
Connection is broken: "java.net.SocketTimeoutException: connect timed out: localhost" [90067-214] 90067/90067이 파일 다 실행시키면서 해도 안되길래 보니까 어떤cmd 혼자가 에러메세지 숨겨놓고 있드라 포트 바꾸라고-> 포트번호 8082 기존에 쓰던거 죽여서 해결함cmd에서 포트번호 죽이는 방법 검색 ㄱ 파일관련 에러(jdbc:h2:~/test 해도 안됨 localhost~~도 안됨)-> 파일 직접 만들어서 해결 화가 나서 컴퓨터 모니터 구멍 낼뻔했다