월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
TypeQuery 질문있습니다.
다름이 아니라, 강의 19분대쯤을 듣다가, query.getSingleResult는 결과가 반드시 하나라고 배웠습니다.그래서 결과가 없을때의 에외를 확인하고 싶어서 아래와 같이 코드를 짰는데, 오류가 안나네요 뭐가 문제일까요..?Member member = new Member(); member.setUsername("member1"); member.setAge(10); em.persist(member); em.flush(); em.clear(); TypedQuery<Member> query = em.createQuery("select m from Member m where m.age=12", Member.class); Member singleResult = query.getSingleResult(); tx.commit();
- 해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1. 트랜잭션의 시작과 끝이라고 한다면 스프링 부트 실행이 시작, 스프링 부트 종료가 끝이라고 생각을 하면 되는 건가요? 2. 다른 강의에서는 Gradle을 추세라고 하셨는데, Gradle 이 아닌 Maven 으로 실습을 하는 특별한 이유가 있을까요? 3. SpringBoot 를 이용하면 EntityManagerFactory 생성을 직접 할 필요가 없는 건가요? 4. h2에 table 을 미리 생성한 후 값을 넣는 이유는 무엇인가요? <실전 스프링 부트 JPA 웹개발 1> 에서는 이런 과정이 없었던 것 같아서 헷갈립니다. 5. JPQL 보다는 QueryDsl 을 많이 쓰신다고 하셨었는데 현재 수업 과정은 JPA 의 발전 과정을 소개해주시는 걸로 이해해도 괜찮을까요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
페치조인 별칭
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]질문 1 ============================================별칭과 관련하여 영한님의 댓글을 찾아보던 도중 라는 글이 있습니다. 제가 이해한 바로는1:N 이던 N:1 이던 1:1 이던페치조인할때 별칭은 사용하지 않는것이 좋지만페치 조인시 별칭을 사용했을때와 별칭을 사용하지 않았을때와 의 데이터가 일치한다면(정합성) 사용 할수 있다 이렇게 이해를 했는데 맞나요 ? 질문 2 ============================================ 페치조인시 1:N 에서 페이징을 사용할수 없는 이유는페치조인의 메커니즘 자체가 1:N 이면 N 만큼 데이터를 다 가지고 있어야 하는데ex) @OneToMany(mappedBy = "team")private List<Member> members = new ArrayList<>();(Team 은 페치조인시 members 의 뻥튀기 된 데이터를 모두 가지고 있어야한다) 그런데 이때 페이징을 실행하면 뻥튀기된 데이터를 가지고 있을수가 없다.그래서 JPA는 메모리에 모든 정보를 끌어모아 저장 시킨후 메모리에서 페이징 처리를 실행 하기 때문에 메모리 부족 현상이 나타날수 있다 이렇게 이해를 했는데 맞나요 ? (질문1,2) ======================질문3페이징 처리를 위해N:1 을 1:N 으로 바꿔서 페치조인을 하면 되는데막상 이 쿼리를 디비에 실행해도 둘다 데이터가 각 3건씩 똑같이 나오는게 맞나요 ? (뻥튀기 가 일어나면 데이터가 더많아야 하는게 아닌가요 ? 1:n 조인이) 각각 1:N , N:1 페치조인 실행한 결과 [데이터 뻥튀기는 -> 데이터 베이스 쿼리는 동일하게 나오나, 자바 객체에서 뻥튀기 ->[중복] 현상이라고 생각하면 되는건가요 ??] 이 부분은 몆번을 봐도 햇갈리네요
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
23:14 distinct
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]중복 제거할때 23:14 부분입니다.JPA는 같은 엔티티는 중복이 제거가 되고SQL에 distinct는 데이터가 달라서 중복에 실패합니다. 그러면 같은 쿼리지만 JPA,실제 SQL의 결과값은 달라진다는건데 개발할때 문제가 없는건가요 ?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
strategy = GenerationType.IDENTITY 테이블은 생성이 되지만 필드가 DB에 데이터가 없습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
제가 이해한게 맞는지 확인 부탁드릴게요
영속성 컨텍스트는 트랜잭션이 시작 후 종료되면 영속성 컨텍스트는 삭제된다.플러시는 영속성 컨텍스트를 비우지 않는다. 8분 17초 에서 약간 헷갈리는게 있다면 트랜잭션 작업이 모두 끝나면 영속성 컨텍스트는 삭제가 되고플러시의 역할은 쓰기 지연 SQL 저장소에 저장된 SQL 을 DB로 전달해 실행하게끔 해주는 역할인거지 영속성 컨텍스트를 지우는 역할은 아닌거죠?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
부모와 자식 엔티티 간의 id 속성 상속에 대해 문의 드립니다.
예제를 구현하다가 부모 엔티티와 자식 엔티티 간의 id 속성에 대해 궁금증이 생겨 문의 드립니다. 보통 엔티티 생성 시 @Id가 있는 필드를 정의하지 않으면 인텔리제이에서 경고문구를 띄워줍니다. 저도 @Entity 사용 시 @Id 컬럼 지정을 반드시 해야 한다고 배웠습니다. 그런데 상속관계 매핑 예제를 구현하다가부모인 Item 엔티티 클래스와 자식인 Album 엔티티 클래스에서 ,자식 Album 엔티티 클래스에 오히려 @Id를 지정하니 에러가 발생했습니다.==> [ org.hibernate.mapping.JoinedSubclass cannot be cast to org.hibernate.mapping.RootClass ] 처음엔 extends를 했으니, @Id 필드가 자식에게 상속되는 건가?.. 싶었는데private 속성은 상속되지 않잖아요?.. 혹시 자식 엔티티에 @id를 설정하면 안돼는 이유를 알 수 있을까요?? [ 부모 Item entity class ]@Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) public class Item { public Item() { } @javax.persistence.Id @GeneratedValue @Column(name = "ITEM_ID") private Long Id; private String name; private int price; [ 자식 Album entity class ]@Entity public class Album extends Item{ public Album() { } /* @javax.persistence.Id @GeneratedValue @Column(name = "ITEM_ID") private Long id;*/ // ---- 추가시 에러 발생 private String director; private String actor;
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
em.persist에서 쓰기 지연 SQL 저장소의 성능에 관한 질문이 있습니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]영속성 컨텍스트 2 강의에 12분쯤 나오는 그림을 보면서 든 생각입니다. 예를 들어 회원 가입이나 게시글 및 댓글 올리기 같은 경우에는 insert가 하나씩 들어갈 것 같아 1차 캐시나 쓰기 지연 SQL 저장소에 차곡차곡 쌓이는 일이 없을 것 같은데요. 만약 한 트랜잭션 안에서 대량의 데이터를 select 해서 insert 하는 경우, 그런 데이터의 양이 1만건, 10만건을 넘어간다고 하면 1차 캐시 및 쓰기 지연 SQL 저장소에 10만건을 쌓아놓고 커밋할 때 DB에 차례대로 한 줄 씩 저장이 될 것 같습니다. 그럴 때 메모리가 터진다거나, 속도가 느려진다거나 과부하가 걸려 성능 제한이 걸리는 경우가 있을 것 같은데 이런 경우를 대비해서 따로 처리해야 하는 로직이나 개념이 있다면 알고 싶습니다!
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Transactional 시 Exception 에 대하여
안녕하세요. 개인적인 질문을 좀 올려보게 되었습니다.. Service Logic 에서 Transactional 이 적용되어 persist를 하는 시점에 발생하는 에러에 대해서 문의드리고 싶습니다. 사실 JPA 쪽이 엮이긴 했지만 실전 강의에 올리는게 맞는 듯한 질문인데, 영속성 컨텍스트 쪽에 대한 고민이 커서 이쪽에 올려보게 되었습니다 ...다음과 같은 로직이 있을경우, @Transactional public String processSignin(String uid, String email) { String uid = memberSigninDto.getUid(); String email = memberSigninDto.getEmail(); MemberInfo memberInfo = new MemberInfo(email); Member member = new Member(uid, memberInfo); // MEMBERINFO 는 Cascade.ALL 로 설정됨 try { memberRepository.save(member); } catch (Exception e) { System.out.println("e.getClass() = " + e.getClass()); e.printStackTrace(); } return "Successful"; } 이와 같은 로직을 수행해보았습니다. uid 값에 한해서 Unique 제약 조건이 걸려 있는 상황이라, 만약에 같은 id 로 회원가입을 시도할 시 다음과 같이 Duplicate Entry 에러가 발생하게 됩니다. o.h.engine.jdbc.spi.SqlExceptionHelper : Duplicate entry '' for key 'member.UKhjme2qjwkdqp9lwmghidnpn6w'JPA 관련 질문은 다음과 같습니다. 위와 같은 상황에서 Exception 을 잡지 못하는 이유는 영속성 컨텍스트에 Member 와 MemberInfo 가 저장되어 있는 상황에서 try catch 를 수행하고, return 까지 그냥 수행하기 때문인 것 같습니다. 즉 Transactional 걸린 로직이 끝나지 않았기 때문에 SQL이 커밋되지 않았고, 해당 함수가 끝나서야 에러가 발생하는 모습으로 보입니다. 이와 같은 상황에서 다음과 같은 해결책(?) 을 생각해보았습니다. 1) 해당 로직에 대한 Transactional 을 Repository 에 건다. 2) memberRepository 에 private final Entity Manager가 있기 때문에 해당 함수에서 flush, clear 하는 함수를 만든 다음에 memberRepository.flush() 를 수행해준다.1), 2) 둘다 상황을 해결해주는 것 같긴 하지만, 뭔가 내키지 않는 방법들인 것 같은데, 이렇게 persist 만 하고 트랜젝션 로직이 끝나야 하는 상황에서는 SQL 단에서 발생하는 에러를 어떻게 캐치하는지 알 수 있을까요? 찾아보니 RollbackFor 에 대한 설명이 제일 많은데, 그건 그냥 해당 Exception 발생시 Rollback 을 하라고 하는 것이라, 응답을 처리해주기 위해서는 아닌 것 같았습니다. 개인적인 질문이지만.. 읽어주셔서 감사드립니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
H2 db 쿼리 엔티티는 생성이 되나 저장하려는 값이 보이지 않습니
콘솔 "C:\Program Files\Java\jdk-17.0.2\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.1\lib\idea_rt.jar=2615:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.1\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\minju\Desktop\inflearn\ex1-hello-jpa\target\classes;C:\Users\minju\.m2\repository\org\hibernate\hibernate-entitymanager\5.3.10.Final\hibernate-entitymanager-5.3.10.Final.jar;C:\Users\minju\.m2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;C:\Users\minju\.m2\repository\org\hibernate\hibernate-core\5.3.10.Final\hibernate-core-5.3.10.Final.jar;C:\Users\minju\.m2\repository\org\javassist\javassist\3.23.2-GA\javassist-3.23.2-GA.jar;C:\Users\minju\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\minju\.m2\repository\org\jboss\jandex\2.0.5.Final\jandex-2.0.5.Final.jar;C:\Users\minju\.m2\repository\com\fasterxml\classmate\1.3.4\classmate-1.3.4.jar;C:\Users\minju\.m2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;C:\Users\minju\.m2\repository\org\dom4j\dom4j\2.1.1\dom4j-2.1.1.jar;C:\Users\minju\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.0.4.Final\hibernate-commons-annotations-5.0.4.Final.jar;C:\Users\minju\.m2\repository\javax\persistence\javax.persistence-api\2.2\javax.persistence-api-2.2.jar;C:\Users\minju\.m2\repository\net\bytebuddy\byte-buddy\1.9.5\byte-buddy-1.9.5.jar;C:\Users\minju\.m2\repository\org\jboss\spec\javax\transaction\jboss-transaction-api_1.2_spec\1.1.1.Final\jboss-transaction-api_1.2_spec-1.1.1.Final.jar;C:\Users\minju\.m2\repository\com\h2database\h2\1.4.199\h2-1.4.199.jar;C:\Users\minju\.m2\repository\javax\xml\bind\jaxb-api\2.3.0\jaxb-api-2.3.0.jar hellojpa.JpaMain1월 16, 2023 9:34:11 오전 org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformationINFO: HHH000204: Processing PersistenceUnitInfo [ name: hello ...]1월 16, 2023 9:34:11 오전 org.hibernate.Version logVersionINFO: HHH000412: Hibernate Core {5.3.10.Final}1월 16, 2023 9:34:11 오전 org.hibernate.cfg.Environment <clinit>INFO: HHH000206: hibernate.properties not found1월 16, 2023 9:34:12 오전 org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>INFO: HCANN000001: Hibernate Commons Annotations {5.0.4.Final}1월 16, 2023 9:34:13 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configureWARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)1월 16, 2023 9:34:13 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001005: using driver [org.h2.Driver] at URL [jdbc:h2:tcp://localhost/~/test]1월 16, 2023 9:34:13 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001001: Connection properties: {user=sa}1월 16, 2023 9:34:13 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001003: Autocommit mode: false1월 16, 2023 9:34:13 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init>INFO: HHH000115: Hibernate connection pool size: 20 (min=1)1월 16, 2023 9:34:13 오전 org.hibernate.dialect.Dialect <init>INFO: HHH000400: Using dialect: org.hibernate.dialect.H2DialectHibernate: drop table Member if existsHibernate: drop table Team if existsHibernate: drop sequence if exists hibernate_sequenceHibernate: create sequence hibernate_sequence start with 1 increment by 1Hibernate: create table Member ( MEMBER_ID bigint not null, USERNAME varchar(255), TEAM_ID bigint, primary key (MEMBER_ID) )1월 16, 2023 9:34:15 오전 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnectionINFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@45bb2aa1] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode.1월 16, 2023 9:34:15 오전 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnectionINFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@2e3f79a2] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode.1월 16, 2023 9:34:15 오전 org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSourcesINFO: HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@2cc04358'Hibernate: create table Team ( TEAM_ID bigint not null, name varchar(255), primary key (TEAM_ID) )Hibernate: alter table Member add constraint FKl7wsny760hjy6x19kqnduasbm foreign key (TEAM_ID) references TeamHibernate: call next value for hibernate_sequenceHibernate: call next value for hibernate_sequenceHibernate: /* insert hellojpa.Team */ insert into Team (name, TEAM_ID) values (?, ?)Hibernate: /* insert hellojpa.Member */ insert into Member (TEAM_ID, USERNAME, MEMBER_ID) values (?, ?, ?)1월 16, 2023 9:34:15 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl stopINFO: HHH10001008: Cleaning up connection pool [jdbc:h2:tcp://localhost/~/test]1월 16, 2023 9:34:15 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections closeERROR: Connection leak detected: there are 1 unclosed connections upon shutting down pool jdbc:h2:tcp://localhost/~/testProcess finished with exit code 0[h2 콘솔]
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
안녕하세요 h2 db 접근이 갑자기?? 안되네요 ㅠㅠ
h2 버전은 강의에 나온대로 1.4.200 입니다위와 같이 접속하면 새로운 db가 사용자 폴더에 생성이되죠 (윈도우 작업환경입니다) 생성된걸 확인하고 아래와 같이 접속하여 빨간색 처럼 에러가뜹니다 이게 이상한게 어제까지 실습할떄까지만해도 정말 잘되다가 갑자기 안되는게 이상하네요,, 스프링부트와는 일단 무관한것 같은데 (일단 h2 db 접근은안되요ㅠㅠ)버전은 2.6.3입니다 (강의 자료에 나온대로 최대한 맞췄습니다) 갑자기 안되는 이유가 있을까요 ㅠㅠ?? 접속은 맨처음 사진으로만 가능합니다,,두번째 사진으로는 접속이 안됩니다,,
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
수업 자료(ppt) 공유 해도 되는건가요
수업 자료(ppt)를지인에게 공유 해도 되는건가요
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
IDENTITY 전략
1.IDENTITY 전략에서 em.persist() 시점에 즉시 INSERT SQL을 실행하고 DB에서 식별자를 조회하는데, 그렇다면 만약에 트랜잭션이 롤백될 경우, INSERT도 롤백된다고 한다면, ID값은 그 다음값부터 할당되는 건가요?ex) id = 1 insertid =2 insert, commitid =1 rollbacknext insert => id=? 2.DB 시퀀스 오브젝트 사용 시, 여러 서버에서 call next value for SEQ를 사용하게 될 텐데, 동시성 이슈를 막기 위해서 시퀀스 오브젝트에 lock이 걸린다면, 시퀀스 오브젝트가 성능의 병목이 될 가능성은 없는건가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Insert 쿼리가 8방 9방 나가길래 확인을 해보았습니다.
one to many 관계에서many관계에 있는 table에, 컬렉션으로 saveAll 쿼리를 날렸는데 8~9방이 나가는겁니다..헤매고 헤매다가..generation type이 identity로 해둔게 생각이 나서 설마 했더니 이게 문제가 맞더라구요.강의에서도 이 말씀을 하더라구요. persist즉시 커밋된다고...일반적으로 ? 제너레이션 타입을 보통 IDENTITY로 하는게 맞나요 ?Auto로 하면 성능상 손해가 있나요?일반적으로 써야 하는 타입이 뭔지 설명 부탁드려도 될까요 ?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
값 타입 컬렉션 대안
값 타입 컬렉션 대안으로 entity에 감싼다고 했는데요예를 들어 @Embedable인 Address를 그냥 처음부터@Entity로 승격시켜버리면 되는데 굳이 왜 감싸나요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
두 개의 결과가 동일한데 왜 아래의 방법을 사용해야하나요?
//findMember.getAddress().setCity("new1"); findMember.setAddress(new Address("new1", "street1", "zip1")); 두가지 를 모두 실행했을 때 결과가 동일하였습니다.식별자가 없기 때문에 한번에 다 바꾸어야한다고하였는데어차피 Member 테이블의 address는 하나이므로식별자가 없더라도 명확한 것 아닌가요?따라서 그냥 setCity()와 같이 한 필드만을 바꿔주어도 되는 것이 아닌가 싶습니다. 왜 아래의 코드처럼 전체를 갈아치워야하는지 다시 설명해주시면 감사하겠습니다. ++ 값 타입을 추적이 불가능하다는 뜻을 구체적인 예시와 함께 설명해주시면 감사합니다.
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
실행 질문
.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]4분쯤에 실행했을 때 오류가 납니다.JAVA 11버전이라 dependency 에 추가도 했습니다.영속성 강의 까지는 연동이 잘 되다가 안되네요데이터 베이스 스키마 자동생성 강의에서는 코드를 추가로 입력 안했는데 필요한가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
실행 질문
.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]4분쯤에 실행했을 때 오류가 납니다.JAVA 11버전이라 dependency 에 추가도 했습니다.영속성 강의 까지는 연동이 잘 되다가 안되네요데이터 베이스 스키마 자동생성 강의에서는 코드를 추가로 입력 안했는데 필요한가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
1차 캐시와 동일성 보장
[질문 내용]책 62페이지 강의 내용 16분 50초에 나오는 페이지에서 DB isloation Level이 Read Commit이어도 애플리케이션에서 Repeatable Read를 보장한다고 했는데요.다른 Entity Manager가 update를 했다면 그 경우에는, 다른 값이 조회가 되는 것인가요? ex) EntityManager A, EntityManager B(혹은 다른 서버, DB에서 직접 쿼리 발생)A selectB update, commitA select이렇게 되는 경우, 1과 3의 값은 같으나 2의 값은 다른 것인지 궁금합니다.B서버는 이미 커밋을 진행해서 DB에서의 값은 바뀌었으나, A서버는 DB에서 조회하지 않고 자신의 영속성 컨텍스트에서 조회했으므로 1번과 같은 값을 읽는건가요?
- 미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
2-2 (Hello jpa 에러)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]다음과 같은 에러가 발생하였습니다.설정도 다음과 같이 되어있고, h2 콘솔도 새로 생성하여 실행하였습니다. 해당 오류가 왜 발생하는건가요..?