전체 글
-
#JPA-7 엔티티 매핑JPA 2021. 2. 15. 19:33
[출처] 인프런 김영한 강사님 -자바 ORM 표준 JPA 프로그래밍 기본 1. 엔티티 매핑 소개 • 객체와 테이블 매핑: @Entity, @Table • 필드와 컬럼 매핑: @Column • 기본 키 매핑: @Id • 연관관계 매핑: @ManyToOne,@JoinColumn 2. @Entity • @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다. • JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 - 주의 • 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자) • final 클래스, enum, interface, inner 클래스 사용X • 저장할 필드에 final 사용 X 2-1. @Entity 속성 정리 - 속성: name • JPA에서 사용할 엔..
-
#JPA-6 플러시 & 준영속 상태JPA 2021. 2. 15. 19:19
[출처] 인프런 김영한 강사님 -자바 ORM 표준 JPA 프로그래밍 기본 1. 플러시(DB Transcation commit 될때 flush 발생) 영속성 컨텍스트의 변경내용을 데이터베이스에 반영 - 영속성 컨텍스트의 변경사항과 DB를 맞추는 작업 - 영속성 컨텍스트의 CRUD 쿼리들을 DB에 반영하는 작업 1-1. 플러시 발생 • 변경 감지 • 수정된 엔티티 쓰기 지연 SQL 저장소에 등록 • 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송 (등록, 수정, 삭제 쿼리) 1-2. 영속성 컨텍스트를 플러시하는 방법 • em.flush() - 직접 호출 Member member = new Member(200l,"member200"); em.flush(); //db에 쿼리 즉시 발생 System.out...
-
#JPA-5 영속성 컨텍스트(2)JPA 2021. 2. 15. 16:52
[출처] 인프런 김영한 강사님 -자바 ORM 표준 JPA 프로그래밍 기본 1. 영속성 컨텍스트의 이점 • 1차 캐시 • 동일성(identity) 보장 • 트랜잭션을 지원하는 쓰기 지연 (transactional write-behind) • 변경 감지(Dirty Checking) • 지연 로딩(Lazy Loading) 2. 엔티티 조회, 1차 캐시 영속성컨텍스트는 내부에 1차캐시를 들고 있다. @id(PK) : key Entity : value 3-1. 1차 캐시에서 조회 em.find를 하게 되면 먼저 DB에 접근하지 않고 1차 캐시를 찾는다. 만약 MEMBER1을 조회할 경우 1차캐시에 MEMBER1이 있기때문에 캐시에 있는 값을 그대로 조회해 온다. 1차 캐시 알아보기 1 - 최초 저장 후 조회 tr..
-
#JPA-4 영속성 컨텍스트(1)JPA 2021. 2. 15. 16:11
[출처] 인프런 김영한 강사님 -자바 ORM 표준 JPA 프로그래밍 기본 1. JPA에서 가장 중요한 2가지 • 객체와 관계형 데이터베이스 매핑하기 (Object Relational Mapping) • 영속성 컨텍스트 2. EMF와 EM -엔티티 매너저 팩토리는 여러 스레드가 동시에 접근해도안전하므로 서로 다른 스레드 간에 공유해도 되지만, 엔티티 매니저는 여러 스레드가 동시에 접근하면 동시성 문제가 발생하므로 스레드 간에 절대 공유하면 안 된다. em이 커넥션 획득하는 시점 - > 보통 트랜잭션을 시작할 때 emf를 생성할 뗴 커넥션풀을 만든다 이 커넥션풀은 J2SE환경에서 사용하는 방법 JPA를 J2EE 환경(스프링 프레임워크 포함)에서 사용하면 해당 컨테이너가 제공하는 데이터 소스를 사용한다. 3...
-
#JPA-3 JPA 객체와 TABLE 매핑 & JPA 동작 확인 & JPQL정의JPA 2021. 2. 15. 15:46
[출처] 인프런 김영한 강사님 -자바 ORM 표준 JPA 프로그래밍 기본 1. 객체와 테이블 생성하고 매핑 MEMBER Table 생성 MEMBER Table과 MAPPING시킬 Member Class 생성 • @Entity: JPA가 관리할 객체 - JPA가 처음 로딩될때 JPA를 사용하는 애로 인식 -> 해당 Entity를 관리해야겠다고 생각함 - 만약 Table명이 객체 이름이랑 다를 경우 -> @Table(name = "tableName") • @Id: 데이터베이스 PK와 매핑 - Pk 설정 • @Column(name ="colName") : field 명이 column 이름이랑 다를 경우 사용. 2. EntityManagerFactory & EntityManager & EntityTransact..
-
#JPA-2 프로젝트 생성 및 기본 설정JPA 2021. 2. 2. 22:51
[출처] 인프런 김영한 강사님 -자바 ORM 표준 JPA 프로그래밍 기본 1. JPA 실습환경 구성 org.hibernate hibernate-entitymanager 5.3.10.Final com.h2database h2 1.4.200 Spring boot와 사용할 hibernate version 맞추기 해당 경로를 통해 spring boot에서 쓰는 hibernate의 버전을 알 수 있다. 2.JPA 설정하기 - persistence.xml (만들어서 프로젝트에 넣기!) • JPA 설정파일 • /MEMT-INF/persistence.xml 위치 • persistence-unit name으로 이름 지정 • javax.persistence로 시작 : JPA 표준속성 • hibernate로 시작 : hib..
-
#JPA-1 SQL 중심적인 개발의 문제를 해결하기 위해 등장한 JPAJPA 2021. 2. 1. 23:19
[출처] 인프런 김영한 강사님 -자바 ORM 표준 JPA 프로그래밍 기본 객체 지향 언어를 사용하면 자연스럽게 따라오는게 관계형 DB이다. 하지만 이를 구상하기 위해선 해당 구조에 맞는 지속적인 SQL을 생산해야하며 그로인해 무한반복되고 지루한 코드가 SQL 중심적인 개발이 된다. 자바 객체를 SQL로 SQL을 자바객체로 변경.. CLIENT의 요구가 늘어날 수록 수정해야하는 코드는 증가한다. 그 증가로 인해 개발자들은 SQL에 의존적인 코드를 벗어나기가 힘들다. 결국 가 되는 것이다. 객체와 RDB의 차이 1.상속 - 객체에는 상속관계가 있음 , RDB는 X 2.연관관계 - 객체는 참조를 가지고 사용 , RDB는 PK FK로 JOIN 을 통해서 찾는다 3.데이터 타입 4. 데이터 식별 방법 내가 객체지..
-
환영합니다!카테고리 없음 2021. 2. 1. 21:18
#1 글을 작 상꿍님의 회원 가입을 진심으로 축하합니다. 이 글은 비공개로 작성돼 있습니다. '편집'으로 내용을 바꾸시거나, 삭제 후 '새 글을 작성'하셔도 됩니다. 글 뿐만 아니라 블로그의 각종 설정을 변경할 수도 있습니다. '블로그관리'를 확인해보세요. #2 다양한 스킨이 있어요. 티스토리에 있는 다양한 '스킨'도 살펴 보세요. 블로그나 사이트를 사용하는 목적에 맞게 스킨을 고를 수 있습니다. 어떤 이야기를 주로 하실 건가요? 잘 생각해 보시고, 마음에 드는 스킨을 고르세요. '스킨 편집'을 통해 다양한 커스텀, 그리고 홈 꾸미기를 적용하실 수도 있답니다. #3 포럼에서 사람들과 소통하세요. 마지막으로 사용하시다가 티스토리에 대해 궁금한 내용이 있다면 '포럼'을 확인하세요. 찾기 어려울 땐 직접 질문..