월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Page<dto>를 반환하는 api swagger
강의를 듣고 api를 만들고 있습니다. Page<dto>를 반환하는 api를 swagger를 통해 문서화하려고 하니 Page.class만 반환값의 파라미터로 전달되어 Page의 content 내에 무엇이 들어가는지 문서에는 보이지 않더군요. 혹시 swagger를 사용해 페이징 api를 문서화할 때 Page.class의 제네릭타입을 명시할 수 있는 방법이 있을까요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
따라하고 싶은데 지금 환경이랑 너무 다른 것 같습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]메이븐 설정또한 지금의 인텔리제이랑 다르고 h2 데이터베이스를 설정하는데도 어려움이 있습니다 .
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
11:04 초에 pk 값이 항상 들어간다고 하셨는데
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]이전 강의에서 strategy = IDENTITY 일때만 persist 시점에 insert 쿼리가 나가서 pk 값을 얻을 수 있다고 하셨는데 지금 상태는 @GeneratedValue 디폴트값(auto) 인데 어떻게 pk 값을 얻을 수 있는건가요??
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
파티셔닝 복합키 관련해서 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요.저도 강의를 듣고 실무에 적용하다가 궁금한점이 있어서 문의드립니다.현재 MySql을 DB로 사용하고있습니다. 데이터가 많아 파티셔닝을 적용한다고 가정을 했을때 GenerationType.Identity가 사용이 불가능할까요?MySql에서 파티셔닝을 위해서는 PK로 지정해야하는것으로 알고있습니다. 그래서 대체키(Table AutoIncrement Key Id), CreatedAt을 PK로 지정한 상황입니다.그리고 이것을 Entity(자바 코드)레벨에서 Entity 매핑을 위해 복합키를 쓴다면 GenerationType.Identity가 불가능한것으로 알고있습니다.하지만 지금 상황을 놓고보면 DB에 파티셔닝을 위해서 복합키를 걸었지만, 연관관계 매핑시 PK의 일부인 createdAt은 실질적으로 의미가 없는 상황이구요.따라서 시퀀스 제네레이터방식을 적용해야할까요? 아니면 아래와 같은 방법이 통상적으로 사용하는 방법일까요? 파티셔닝을 위해서 DB에는 대체키(자동증가값) + CreatedAt(생성일자를 파티션키로 사용한다는 가정)JPA에서는 자동증가 대체키는 키 생성전략으로 Identity(MySql)로 지정하고 createdAt 필드는 ID지정을 안하고 @PrePersist로 영속상태 만들기전에 주입하는 방식 엔티티에는 EmbeddedId나 IdClass어노테이션으로 복합키 지정 x 혹시 위 방법이 단점이 있거나 불가능할까요?시퀀스 제네레이터로 테이블을 관리하는것이 리소스 낭비라고 생각이 들어 AutoIncrement를 사용하고 싶어 질문드립니다. 한줄 요약하자면 파티셔닝을 위해서 createdAt을 DB단에서 PK로 지정했지만, 이것을 꼭 Entity레벨에서 복합키로써 @IdClass나 @EmbeddedKey로 지정을 해야만 하는가? 입니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
h2 실행 불가 문의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]환경: macOS Sonoma 14.1 이전 스프링 로드맵에서는 ./h2.sh하면 실행이 잘 됐는데, 이 강의부터는 터미널에 이 내용이 나옵니다.[./h2.sh: line 3: 1300 Trace/BPT trap: 5 java -cp "$dir/h2-2.2.224.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Console "$@"]제 생각에는 스프링 로드맵 끝부분에서 자바 17을 설치하라고 해서 홈브류로 17버전 받은 다음부터 이렇게 된 것 같은데 h2를 어떻게 실행해야 할까요?오류 리포트-------------------------------------Translated Report (Full Report Below)-------------------------------------Process: java [1367]Path: /Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home/bin/javaIdentifier: java Version: ???Code Type: ARM-64 (Native)Parent Process: Exited process [1365]Responsible: Terminal [631]User ID: 501Date/Time: 2023-11-05 13:53:40.4677 +0900OS Version: macOS 14.1 (23B74)Report Version: 12Time Awake Since Boot: 1500 secondsSystem Integrity Protection: enabledCrashed Thread: 0 Dispatch queue: com.apple.main-threadException Type: EXC_BREAKPOINT (SIGTRAP)Exception Codes: 0x0000000000000001, 0x000000018c3ae4e4Termination Reason: Namespace SIGNAL, Code 5 Trace/BPT trap: 5Terminating Process: exc handler [1367]Application Specific Information:References to Carbon menus are disallowed with AppKit menu system (see rdar://101002625). Use instances of NSMenu and NSMenuItem directly instead.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@ColumnTransformer 사용시 문의사항
안녕하세요. DB는 PostgreSql로 DB암호화로 특정 컬럼 데이터가 암호화된 상태입니다.구글링을 해보니 @ColumnTransformer를 통해 암/복호화가 가능하다고해서정상적으로 확인했습니다.다만, read,write프로퍼티내에 보안에 민감한 key값이 직접적으로 들어가서application파일 따로 두고싶은데 방법이 있을까요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
다대다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 다대다 매핑을 듣다가 의문이 생겼습니다.기존에 양방향 매핑을 최대한 지양하라고 하시걸로 이해하셨는데 다대다 매핑을 일대다, 다대일로 풀어내면 멤버에는 @OneToManyprivate List<MemberProduct> memberProducts = new ArrayList();를 가지게 되고 멤버프로덕트에는@ManytoOne@JoinColumn(name = "MEMBER_ID")private Member member;를 갖게 된느데다대다 매핑을 일대다 다대일로 풀어내면 두 객체는 항상 양방향 매핑이 되어야 하는 것인가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
컬렉션의 초기화 유무의 따른 size의 값이 다르게 측정됩니다.
@Transactional public void increasePoint() { Store store1 = storeRepository.findById(1L).get(); Point point = new Point(1); // System.out.println("store1.getPoints().size() = " + store1.getPoints().size()); store1.add(point); store1.add(point); store1.add(point); store1.add(point); store1.add(point); System.out.println("store1.getPoints().size() = " + store1.getPoints().size()); }@OneToMany(mappedBy = "store",cascade = CascadeType.ALL) private List<Point> points = new ArrayList<>();Store(1):Point(N) 입니다. Store 내부에 양방향으로 List로 갖고있고 현재 디비에 Store ID 1번을 외래키로 갖고있는 Point가 이미 2개가 있습니다. 위에서 첫번째 디버그 출력문을 주석처리하고 add를 5번 진행 후 마지막에 검증하게 되면 DB에 2개 + 1개 해서 사이즈가 3으로 측정됩니다.하지만 위에서 주석처리를 제거하고 size()를 통해 초기화 이후에 add를 5번 진행하고 사이즈를 출력하면 DB2개 + 5개해서 7개가 출력됩니다. 위에 두가지 상황에서 왜 초기화를 먼저 진행하고 add하는것과 add이후에 초기화 하는것이 결과가 다른지 궁금합니다. 같은 객체를 여러번 add해도 실제 DB에 인서트 쿼리는 1번만 발생하게 됩니다(위에 두 가지 경우 모두) 짐작은 되지만 정확한 이해가 되지 않는데.. 같은 객체라 영속성컨텍스트에서 관리하게 되면 이후에것은 이미 관리하고 있으니 저장하지 않는것으로 이해하면 될까요?위에서 point객체가 영속성컨텍스트에 관리되기 시작하는 시점은 언제인가요? 최초의 add호출인가요?PersistentBag의 add를 봤을때 컬렉션이 초기화 되어있지않다면 다른 리스트에 넣어두고 초기화되면서 합쳐주는것으로 확인했는데 왜 5개를 다 넣어주지 않고 1개만 넣어주는지 궁금합니다. (디버깅과정에서 자동초기화 되서 정확하지 않습니다.)
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPA 질문이요!
엔티티에서 컬럼 아이디를 idx로 했을 때 findById().get() 했을 때(기본 제공 메소드)는 중복키오류가 안나오는데 레포지토리에 findByIdx(int idx) 이렇게 만든걸 호출했을때는 중복키 오류가 생기는데 차이가 어떻게 생긴건지를 모르겠습니다...save()를 호출안하고 set만 했는데 DB에 객체가 바뀌어서 저장되서 이 부분도 원래 이렇게 되는게 맞는지 궁금합니다...
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
엔티티매핑 -실전예제에서 설정
h2 에서 url 에 jpa shop으로 만드려하는데 생성할수 없다고 에러가 뚭니다. Database "C:/Users/kjkkm/jpashop" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-224] 90149/90149 (도움말)
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
일대다 연관관계
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]일대다 연관관계가 업데이트 쿼리 나가는 게 아무래도 영속성 컨텍스트 기준으로 쿼리가 나가기 때문에 그런걸까요? 일단 테이블의 연관관계에서는 무조건 다 쪽이 외래키를 가지고 있기 때문에, JPA쪽에서도 그걸 알고 그냥 Member 먼저 insert 한 다음 id 가져와서 Address insert 하면서 같이 주면 효율적이지 않을까 하는데..뭔가 이 쓰기지연 SQL 저장소 여기 나가는 것도 알아서 최적화 되고 이런 게 있었던 거 같은데.. 아닌가.. 작동 방식이 차곡차곡 쌓여서 나중에 나간다 이렇게 알고 있긴 한데..address insert 하는 쿼리문들을 member insert하는 쿼리문 바로 뒤에 붙여버리면 좋지 않을까 하는데.. 이런 거 하나하나 다 따지기에는 너무 많은 케이스가 있고 영속성 컨텍스트 기준으로 나가기 때문에 그런건가요..?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
자바버전이요.
1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]지금 hello jpa-애플리케이션 개발 부분 공부하고 있는데요.hibernate.properties not found 이런 에러가 나옵니다.제가 좀 찾아보니. 자바 버전 문제인것같더라구요 저는 11버전을 쓰고 있습니다. 그럼 8버전으로 바까야 하는데, 환경변수까지 모두 바꿔야 하나요? 현재 제가 토이프로젝트하는건 모두 11로 되어있는상태라서요. 그리고 자바 버전을 바꿀 수 밖에 없는건가요? 11로 사용할 수 있는 방법은 없는지 궁금합니다.,
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
Order의 orderItems에 orphanRemoval 주지 않는 이유가 따로 있으신 가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기 보면, 주문과 주문 상품은 완전히 종속적일 것 같은 느낌이고,cascade도 ALL이라서 완전히 부모에서 관리할 것 같은 느낌이라..예제에서 보통 실무에서 쓸만한거 거진 예시로써 사용해 왔는데, orphanRemoval는 사용하지 않았던 이유가 궁금합니다.딱히 이유는 없고 충분히 고려할 수도 있는 내용인지, 아니면 뭐 orphanRemoval는 실무에서 잘 안쓴다던지 궁금합니다.아니면 보통 인터넷 쇼핑 이용할 때 주문상품 중 하나를 빼고 싶을 때 뺄 수 있는게 아니라 주문 자체를 다시 해야 하는 경우가 많아서 그런 비즈니스 적인 이유 때문에 그런건가요?그럴 경우는 오히려 고아객체라고 삭제하면 위험해질 수 있으니..?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
일대다 관계 제약조건 일경우
현재 일대다 관계에서 member테이블 update되는 걸 확인하였습니다. 업무 특성상 별도로 h2 데이터베이스를 사용하지 않고 교육을 청강중에 있습니다. h2DB를 봤을때는 기본키를 제외하고 별도의 제약조건이 존재하지 않은것으로 보여지는데요. 테이블에 외래키 제약조건이 있을 경우 일대다 관계가 에러없이 성립이 가능한가요?특정 프로젝트의 경우 설계 당시에 관계를 잡아놓고, 오픈 시점에서 보안 또는 속도를 이유로 관계를 끈어놓을 경우가 있는데 관계 없는 사용하기 것도 가능한것인지 궁금합니다.
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
h2 버그인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]저는 ddl auto를 create로 하고시퀀스 전략 했을 때,persist 안하고 봐도 시퀀스가 그냥 1,증가가 50입니다..그 다음 persist를 한번 해 봤더니,next value for member_seq를 한번만 호출했습니다. 근데 persist 2번 이상하면,next value for member_seq를 2번 호출합니다.시퀀스의 현재값도 101번이 됩니다.뭔가 JPA쪽에서 놓친건가요..?아니면 제가 뭔가 강의에서 놓친건가요?그렇게 현재값 101번 만든 후,이번엔 dll.auto를 none으로 해서다시 돌려봤더니 다서 persist 해서 테이블에 저장해서 나온 건 52부터 찍힙니다. persist 안한 것 persist 1번next value for member_seq 한번 호출 persist 2번 호출next value for member_seq가 두번 호출 됍니다. 그런데.. 이 상태에서 ddl.auto를 none으로 하고 다시 한번 로직을 실행해 봤더니.. 어.. 제 생각이 맞다면 101부터 id가 매겨져야 할 것 같은데.. 어.. public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try{ Member member1 = new Member(); member1.setUsername("A"); Member member2 = new Member(); member2.setUsername("B"); Member member3 = new Member(); member3.setUsername("C"); em.persist(member1); em.persist(member2); // em.persist(member3); tx.commit(); } catch (Exception e){ tx.rollback(); } finally { em.close(); } emf.close(); } 사용 버전<?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>jpa-basic</groupId> <artifactId>ex-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>org.hibernate.orm</groupId> <artifactId>hibernate-core</artifactId> <version>6.2.9.Final</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>2.1.214</version> </dependency> </dependencies> </project>
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
@GeneratedValue(strategy = GenerationType.IDENTITY) 변경후 실행오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]@GeneratedValue어노테이션을 설명에 맞게 바꾸다가 IDENTIFY로 변경후에 아래와 같이 메시지가 발생합니다.ERROR: NULL not allowed for column "ID"; SQL statement:소스는 아래와 같습니다.//Member.java@Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; //.. }Persistence.xml<?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="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> <!-- 옵션 --> <!--생략...--> <property name="hibernate.hbm2ddl.auto" value="create" /> </properties> </persistence-unit> </persistence>//Main메서드 내용입니다 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.setName("CCCC"); System.out.println("============start=========="); em.persist(member) ; System.out.println ("member.getId() = " + member.getId()); tx.commit(); //...생략h2콘솔에서 테이블은 정상적으로 생성되어있는 상태입니다.
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
flush() 쓰기 지연 SQL 저장소 비우나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]비울 지.. 안 비울 지..전송해 버려서 가지고 있을 필요가 없는 것 같으면서도..그렇다고 그게 그렇게 큰 메모리는 차지하고 있지는 않을 거기 때문에..가지고 있는 이점이 뭔지는 모르겠지만, 뭔가 이점이 있어서 안 지울 것 같기도 하고..
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
영속성 컨텍스트 쓰기 지연 SQL 저장소
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]persist 하면 캐시에 저장됨과 동시에 그 내용이 SQL로 해석되어 쓰기 지연 SQL 저장소에 저장되잖아요.그런데 중간에 영속화 했던 것의 값을 바꾸면 updata문이 또 추가가 될거 잖아요. (커밋 시점에 비교하는 거니 한번만. 물론 보통 persist 전에 모든 작업을 끝내놓는게 바람직 하지만)그런 것 보다는 차라리 캐시 될 때 쓰기 지연 SQL 저장소에다 SQL문으로 해석하여 저장하는 것 보다,커밋 순간에 캐시에 있는 내용들을 SQL문으로 해석하는 것은 별로일까요?그러니까, member 객체를 select문에서 가져온거면 enum.select, 새로 생성한 거면 enum.create라고 해서 추가로 그렇게 묶어서,캐시에 저장할 때는 원래 member 객체 reference를 가지고 있도록 한 다음 객체 하나로 감싸서 저 enum을 가지고 있게 한다던지,(초기상태 캡쳐도 한다고 했는데, 그럼 원래 이런 식인건가..? Member prototype 해서..?)마지막에 commit 순간에 영속성 컨텍스트를 읽어 SQL문으로 해석하고 만약 enum.create면 그냥 최신값 그대로 쿼리문으로 만들어서 날리면 되고update면 현재값 그대로 날리면 되고select면 이거는 똑같고. 전체적으로 보니 그냥 이거 모두를 select 처럼 commit 시점에 한번 확인만 하고 영속성 컨텍스트에 있는 모두를 한번에 쿼리로 바꿔 내보내는 것이요. 근데 이거 아직 join 이런 게 잘 몰라서 그런 쪽에서 문제가 있을 수 있겠나요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
하나의 데이터베이스 서비스에 각각 다른 데이터베이스간 엔티티 관계설정이 가능한지 궁금합니다.
질문드립니다. 각각 다른 데이터베이스에 있는 테이블을 엔티티로 만들어서 둘간의 관계를 구성할 수 있을까요? 조금 더 설명을 드려보면하나의 MySQL 서비스에 A1 이라는 DB 와 A2 라는 DB 를 각각 만들어서 운영중이라고 하면A1.Table1 과 A2.Table2 가 각각 엔티티로 구성되고, 그것의 관계설정에는 문제가 없는지가능하다면 어떤 방법을 사용하면 좋을지 궁금합니다.단 DB 에 연결되는 계정은 두개의 DB (A1, A2) 모두에 권한을 가지고 있는 상황입니다. 혹시 방법이 있을지 문의드립니다.감사합니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
5분 2초에 제 코드에서 Team 쿼리가 안나갑니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]저는 강의 처럼 select m from Member m inner join m.team t 해도 Team 조회쿼리가 추가로 발생 안하고, select m from Member m inner join m.team t 해도 추가쿼리 발생안하는데 혹시 그사이에 hibernate 업데이트 되었을까요..? 아니면제가 먼가 잘못친게 있을까요? manytoone에 fetchtype 아무것도 안써놨는데도 그렇네요, query 작성하는 라인 전에 em.flush, em.clear 다 하는데도 team 쿼리가 안나가요