월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
일반 조인에서 연관된 엔티티를 조회하지 않는 과정이 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]정확히는, 페치조인과 일반 조인의 차이에서,페치 조인은 연관된 엔티티를 함께 즉시 로딩하기 때문에 추가 select문이 발생하지 않고(한번에 퍼올리고)일반 조인은 그렇지 않아서 후에 조회할 때에 다시 select문이 나간다고 설명해주셨습니다.저는 이 부분이 일반 조인은 프록시형태로 조회해서 LAZY 때문에 그렇다고 이해하고 있었는데 프록시는 아니라고 설명해주셔서요.그러면 일반 조인이 후에 다시 조회하게 되는 정확한 이유가 궁금합니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
persistence.xml 에서 URI is not registed
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 ppt 내용 복사해서 작성했는데 오류가 납니다 스프링 초보인데 도와주세요
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
persistence.xml
persistence.xml 작성 후 교수님과 같은 창이 뜨지 않습니다.찾아본 방법으로 project structure 에서 추가하려해도 JPA가 뜨지않습니다. 맨 마지막에 구글 드라이브 주소를 추가하였습니다--프로젝트 생성 사진<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>jpabasic</groupId> <artifactId>ex1-hello-jpa</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.0</version> </dependency> <!-- JPA 하이버네이트 --> <!-- 인터페이스--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>5.3.10.Final</version> </dependency> <!-- H2 데이터베이스 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.200</version> </dependency> </dependencies> </project><?xml version="1.0" encoding="UTF-8"?> <persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"> <persistence-unit name="hello"> <properties> <!-- 필수 속성 --> <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/> <property name="javax.persistence.jdbc.user" value="sa"/> <property name="javax.persistence.jdbc.password" value=""/> <property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> <!-- 옵션 --> <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.hbm2ddl.auto" value="create" /> </properties> </persistence-unit> </persistence> https://drive.google.com/file/d/1VSj9otuwnM8LDSYNYHaoXz04VmY15tLn/view?usp=share_link** pom.xml파일 h2 버전은 1.4.200으로 바꾸었습니다.
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
기본 타입, 객체 타입
C언어에서 배운 것과 비슷한 것 같은데 비슷하게 이해하면 될까요?기본 타입의 복사는 call by value객체 타입의 참조 전달은 call by reference
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
프로젝트 생성 초기 문제가 생겼습니다.
자바 버전 설정시 다른 사람들과는 다르게 oracle 버전이 없고 직접 다운받으려했는데 설치가 안됩니다. amazon corretto 11.0.19로 진행해도 되나요?
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
준영속 상태일 때, 프록시를 초기화 못하는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 내용 중에,'영속성 컨텍스트의 도움을 받을 수 없는 준영속 상태일 때, 프록시를 초기화하면 문제 발생' 이라는 내용이 있었습니다.이를 보여주시는 예제로 나머지는 이해가 됐는데, 아래 하나가 이해가 되지 않았습니다. (39:43부근)영속성 컨텍스트를 삭제하는 것도, 닫는 것도 아니라 'DB에 반영하는' em.clear() 메서드를 사용하면 프록시 초기화를 하지 못하는 이유가 궁금합니다. 저의 예상으로는 프록시가 영속성 컨텍스트 내에서 긴밀하게 연결되어 있어, 해당 프록시가 생성된 영속성 컨텍스트가 없으면(아예 없는 것 뿐만 아니라 딱 '그' 영속성 컨텍스트가 없으면) 더 이상 사용이 불가능 하다는 것인데, 맞는지도 궁금합니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
ManyToOne 관계에서 페치조인
안녕하세요. JPA 강의를 듣고 프로젝트를 진행하던중에 페치조인과 관련된 문제가 생겨서 질문드립니다.총 4개의 엔티티(A,B,C,D)가 있습니다.B는 각각 A, C와 ManyToOne 관계입니다.* A(1) <- B(N) -> C(1)C는 D와 ManyToOne 관계입니다.* C(N) -> D(1)이런 상황에서 JPQL로 B를 조회하려합니다. 상세 조건은 아래와 같습니다.B를 조회하면서 C를 페치조인으로 같이 가져오고 싶습니다. (A는 가져오지 않음)조회 조건은 A의 id 값과 D의 id 값입니다. 위의 조회를 위해서 JPQL을 다음과 같이 짜보았습니다.1. select b from B b join fetch b.c where b.a.id = :a_Id and b.c.d.id = :d_Id 2. select b from B b join fetch b.c c where b.a.id = :a_Id and c.d.id = :d_IdJPA의 표준 스펙상 페치조인의 대상에는 별칭을 줄 수 없다고 하셔서 별칭을 주지 않고 작성한 것이 1, Hibernate에서 별칭을 허용하기 때문에 별칭을 주고 작성한 것이 2입니다.그런데 위의 두 JPQL 모두 애플리케이션 로딩시점에서 아예 예외가 터져버리더라구요. SemanticException: query specified join fetching, but the owner of the fetched association was not present in the select list위에 적어놓은 것과 같이 ManyToOne 관계가 연쇄적으로 걸려있는 상황에서 페치조인을 어떻게 해야하는지 궁금합니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPQL 두개의 엔티티 조회 반환 값 질문
안녕하세요.! 아래의 JPQL 반환값 질문 드립니다..!String query = "SELECT m, t FROM MEMBER m JOIN m.team t" List<Object[]> result = em.createQuery(query).getResultList(); for(Object [] row: result){ Member member = (Member)row[0]; Team team = (Team)row[1]; } Object row에는 어떤 값들이 들어가고..row[0],row[1]에는 어떤 값들이 들어있는지 궁굼합니다.!
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JQPL 반환 값 질문..!
안녕하세요.!강의를 수강하다가 질문 드립니다.Member.class 엔티티가 아래와 같을 때 @Getter @Entity public class Member { @Id private Long id; private String username; private Long age; ... } Query query = em.createQuery("SELECT m.username, m.age from Member m"); List resultList = query.getResultList(); for (Object o : resultList)){ Object[] result = (Object[]) o; //결과가 둘이상이면 Object[]반환 System.out.println("username = " + result[0]); System.out.println("age = " + result[1]); } 와 같은 JPQL문을 짯을 때,, DB에 존재하는 Member 데이터가id : 1, username : user1, age:10id : 2, username :user2, age:20일 경우에, resultList 에는 Obejct[0], Object[1]이 존재하고,아래 iter문에서 나오는 값은, Object[0][0], Object[0][1] Object[1][0], Object[2][1] 값 인가용? 감사합니다.
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
id값을 Integer로 했을때
id값을 Integer로 했을때 10몇억 까지만 된다고 하셨는데 int는 최대 21억까지 저장 할 수있는거 아닌가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
다대일 매핑 테일에 대해서.. spring jpa 연관관계
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이런식으로 node 와 edge가 다대일 관계로마인드맵과 연관 관계를 맺으면 관리가 되나여.?node가 리스트 형식으로 저장되서 마인드맵의 id를 fk로 가져와서 이 마인드맵 번호로 관리할려고 하는데? 보통은 마인드맵쪽에서 다대일 관계로 되야하는데 그렇게 하면 이상해서..
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
메이븐 프로젝트
현재 Hello JPA - 프로젝트 생성 부분을 듣고 있는 수강생입니다.그 뒤에 있는 jpa 로드맵 모든 강의에서도 계속 메이븐 프로젝트로 프로젝트 진행을 하시는건가요?메이븐이랑 gradle 프로젝트는 많이 다를까요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
H2 database 실행 안됨
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Create table Member()해서 테이블을 만들어서 실행버튼을 누르면 멤버테이블이 만들어 지잖아요 근데 실행버튼을 눌러도 테이블이 안만들어져요..
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
안녕하세요. 질문드립니다.
3분 14초에FAVORITE_FOOD와 ADDRESS 테이블에 PK에 일반적으로 사용하는 ADDRESS_ID와 같은 식별자를 쓰는 것이 아닌 MEMBER_ID를 쓰는 이유는 엔티티가 아닌 값타입이기 때문이라고 말씀해주셨는데요. 이 개념이 이해가 잘 안되네요.ㅠ.ㅠ 엔티티도 결국 테이블간 관계가 맺어진것이고, 값타입도 결국은 테이블간 관계가 맺어진거라면 저는 일대 다 관계랑 뭐가 다르지라고 생각하여 ADDREES테이블 PK도 별도로 만들려고 하면되지? 왜 MEMBER_ID값을 PK로 써야할까라는 생각이 듭니다. 경우에 따라 값타입으로 써야한다고 말씀을 주시는것같은데 부연설명좀 해주실수있을까요? PKMEMBER_ID1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
연관 관계 주인을 FK 없는 테이블의 엔티티로 지정했을 때 관련 질문입니다!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요! 항상 강의 잘 듣고 있습니다 감사합니다 :-)다름이 아니라, <양방향 연관관계와 연관관계의 주인 1- 기본> 강의의 18분 쯤에 설명주시는 내용 중 FK가 존재하지 않는 Team을 연관 관계의 주인으로 지정하면, Member를 연관 관계의 주인으로 지정했을 때보다 INSERT 외 UPDATE와 같은 더 많은 불필요한 SQL 쿼리가 발생한다고 언급하신 부분이 정확하게 머릿속에 개념이 잡히지 않습니다 ㅠㅠ 혹시 추가적인 설명이나 예시를 주실 수 있을까요..?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
DirtyChecking 질문입니다!
회원을 수정하고, 회원의 닉네임이 중복되는 경우를 검증하고 싶었습니다. 더티체킹은 트랜잭션이 종료됐을 때 영속성 컨텍스트에서 변경된 것이 있는지 확인하고 변경된 것을 확인되면 업데이트 되는 것으로 알고 있는데요.@Transactional public void update(Long id, String name) { Member member = findOne(id); member.setName(name); validateDuplicateMember(member); } private void validateDuplicateMember(Member member) { // NullPointerException 발생 X List<Member> findMembers = memberRepository.findByName(member.getName()); if (!findMembers.isEmpty()) { throw new IllegalStateException("이미 존재하는 회원입니다."); } }제가 의도한 목적은 다음과 같습니다.회원을 조회 -> 영속성 컨텍스트 영속상태회원 객체에 대한 이름을 변경 -> 트랜잭션 종료 시 더티체킹 예상현재 객체 전달전달 된 회원의 이름을 가진 회원을 조회중복 시 Rollback, 아니라면 commit 후 더티체킹 이후 회원 엔티티 수정하지만 중복이 아님에도 중복 예외가 발생하길래 log를 확인해본 결과 List<Member> findMembers = memberRepository.findByName(member.getName());를 수행하기 전에 flush()가 되는 부분을 확인 할 수 있었습니다.의심되는 부분은 4번에서 회원을 조회하는 과정에서 쿼리를 수행해야해서, 그 과정에서 쓰기 지연 저장소에 있던 쿼리들이 flush() 된 것이 아닌가 하는 의심이 듭니다.그럼 제가 원하는 목적을 수행하기 위해서는 메서드를 아래와 같이 변경해야만 하는지..@Transactional public void update(Long id, String name) { validateDuplicateMember(name); Member member = findOne(id); member.setName(name); } private void validateDuplicateMember(String name) { // NullPointerException 발생 X List<Member> findMembers = memberRepository.findByName(name); if (!findMembers.isEmpty()) { throw new IllegalStateException("이미 존재하는 회원입니다."); } }다른 질문에서 중복 검증 시 영한님의 다음과 같은 답변을 확인 할 수 있었는데요.@Transactional public void update(Long id, String name) { Member member = findOne(id); validateDuplicateMember(member); member.setName(name); } private void validateDuplicateMember(Member member) { // NullPointerException 발생 X List<Member> findMembers = memberRepository.findByName(member.getName()); if (!findMembers.isEmpty()) { throw new IllegalStateException("이미 존재하는 회원입니다."); } }이 부분은 변경되기 전이고 이미 등록된 상태의 Member를 가져오는 것이기 때문에 회원 이름 수정 시 중복 가능성에 대한 예외를 검증하는 것이 아니지 않나 하는 생각이 들어서 질문드립니다..!
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
프로퍼티와 메서드의 초기화 질문입니다.
public class student { public int score; public int getScore() { return this.score; } }위와 같은 코드가 있고 연관관계 매핑이 되어있어 현재 프록시 상태라고 가정했을 때점수를 얻기 위해 student.score를 사용 하면 영속성 컨텍스트로부터 초기화를 받지 못하고, student.getScoret()를 하면 초기화를 받는 건가요 ? 만약 프로퍼티 접근을 사용했을 때 초기화를 받지 모한다면 studnet.score 안에는 무슨 값이 들어있게 되는 건가요 ?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
다대일 양방향 연관 관계의 주인 지정 관련 질문 드립니다!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요! 항상 강의 잘 듣고 있습니다 :-) 기본적으로 제가 이해하고 있는 연관 관계 주인 개념이 맞는지, 그리고 다대일 양방향 연관 관계 주인 지정과 관련해 드리고 싶은 질문이 있어 글을 작성합니다! 제가 이해한 내용을 바탕으로 기본적인 연관 관계, 연관 관계 주인 개념을 아래와 같이 정리해봤는데, 제대로 이해하고 있는지 궁금합니다.JPA에서 제공하는 어노테이션을 이용해 Java 코드로 정의된 엔티티 클래스 간 연관 관계를 설정하면, JPA가 이 코드를 기반으로 테이블을 생성하게 된다. 이때, Member과 Team 엔티티 클래스 중 하나는 무조건 연관 관계 주인으로 지정해주어야 한다. 기본적으로 데이터베이스의 테이블은 외래 키를 통해 두 테이블 간의 관계를 설정할 수 있고, 한 쪽의 테이블에만 (관계를 맺을 테이블에 대한) 외래 키가 존재하면 JOIN을 통해 자유롭게 양쪽 테이블을 참조할 수 있다. (→ 단방향, 양방향(단방향*2) 연관 관계라는 개념이 테이블 간에는 존재하지 않는다.) 그런데 Member 엔티티 클래스의 필드에 member_id, name이 있고, Team 엔티티 클래스의 필드에 team_id, name 존재하고, 일대다 연관 관계를 JPA 통해 설정했을 때 JPA가 매핑 정보를 기반으로 테이블을 생성하는 상황을 생각해본다. JPA는 기본적으로 MEMBER 테이블, TEAM 테이블을 생성할 것이다. 그리고 MEMBER 테이블에는 member_id, name 컬럼이, TEAM 테이블에는 team_id, name 필드가 컬럼이 존재할 것이다. 그리고 JPA를 통해 설정한 연관 관계 또한 두 테이블에 반영해야할텐데, 이를 위해선 두 테이블 중 하나에 (관계를 맺을 테이블에 대한) 외래 키 필드를 추가해야 한다. 외래 키를 통해 테이블 사이의 관계를 설정할 수 있기 때문이다. 그런데 JPA는 이 외래 키 필드를 어느 테이블에 추가해야할지 자체적으로 결정을 내릴 수 없다. 회원 테이블에 팀 테이블로 접근할 수 있는 외래 키 필드를 생성하는 것이나 팀 테이블에 회원 테이블로 접근할 수 있는 외래 키 필드를 생성하는 것이나 결국 (단방향/양방향 연관 관계 개념 자체가 없는) 데이터베이스 테이블 입장에선 차이가 없기 때문이다. 그래서 JPA를 이용해 연관 관계를 지정해주어야, JPA가 어떠한 엔티티가 다른 엔티티를 참조하는 주체가 되는지 파악할 수 있고, JPA가 테이블을 생성할 때 다른 엔티티를 참조하는 주체 엔티티와 매핑될 테이블에 외래 키 필드를 추가할 수 있게 된다.Member, Team와 같은 다대일 연관 관계를 양방향으로 설정한 후, Team을 연관 관계의 주인으로 지정했을 때, Team 수정 시 모든 Member를 향한 불필요한 (UPDATE 등의) 쿼리가 발생할 수 있다는 게 잘 다가오지 않습니다... ㅠㅠ Member를 연관 관계의 주인으로 지정했을 때 Team 수정하는 경우와 비교해서 조금 더 자세히 설명해주시면 정말 감사하겠습니다!
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
flush를 하고 디비를 확인해보니 반영이 안되어 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. flush() 메소드에 대해서 테스트를 하다가 이상한 점이 있어 질문을 드립니다.강의 내용을 보면 플래시 과정은 "영속성 컨텍스트의 변경내용을 데이터베이스에 반영" 이라고 알려주셨는데요.디버깅을 통해서 살펴보니 flush() 호출시 로그에 쿼리는 잘 찍혀 보이지만 데이터베이스에 persist() 한 생성한 데이터는 h2에서 보이지 않습니다. public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try { Member member = new Member(); member.setId(200L); member.setName("member200"); em.persist(member); em.flush(); tx.commit(); } catch (Exception e) { e.printStackTrace(); tx.rollback(); } finally { em.close(); } emf.close(); } }위 코드에서 tx.commit(); 시점에 브레이크포인터를 삽입하고 살펴보면 em.flush() 는 호출되었기 때문에 h2에 있어야 하지만 실제 h2에서는 데이터가 보이지 않습니다.hibernate.hbm2ddl.auto는 auto 로 설정하였습니다.확인 부탁드려도 될까요?프로젝트 링크도 같이 전달 드립니다.https://drive.google.com/file/d/1mYBW0jItuLrV_jPEEYACtFEJ4Cf3Bh3V/view?usp=share_link감사드립니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
jpa fetch join 페이지네이션에 대해서 질문이 있습니다.
안녕하세요. JPA N+1 문제를 공부하고 이를 해결하기 위해서 fetch join을 사용하고 있는데 fetch join의 단점으로 페이지네이션이 적용이 안되는 것으로 강의와 책을 보고 학습했습니다.이를 직접 실습하기 위해서 실습을 해보면 한 엔티티와 연관관계를 가지는 2개의 연관관계 엔티티를 fetch join한 결과 페이지네이션이 잘 적용되어서 혹시 제가 모르는 예외적인 상황이 있나 해서 질문 드립니다.아래는 코드이고, (피드와 책은 다대일 관계이고, 피드와 유저는 다대일 관계입니다)실제로 호출된 쿼리는 아래 사진과 같습니다.limit 처리가 잘 된것처럼 페이지네이션이 잘 적용이 됩니다. 제가 알기로는 분명 fetch join을 사용하면 페이지네이션이 적용이 안되어야 하는데 뭐가 문제인지 해서 질문 드립니다...!