일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ja async
- springboot gradle 모듈 프로젝트
- 스프링부트
- JPA준영속 상태
- 코프링
- 코틀린 클래스
- spring 모듈 프로젝트
- JPA
- JPA플러시
- jpa 플러쉬
- js async await
- javascript api 호출
- JPA플러쉬
- javascript fetch
- spring gradle 모듈
- jpa 플러시
- jpa 영속성
- js fetch
- javascript async await
- JavaScript
- JS
- 준영속상태
- 코틀린
- gradle 모듈 프로젝트
- Flutter
- springboot 모듈
- js api 호출
- js await
- javascript async
- jpa준영속
- Today
- Total
목록develop (44)
매일 한줄 코딩
5. 엔티티 매핑 1. 필드와 컬럼 매핑 객체와 테이블 매핑: @Entity, @Table 필드와 컬럼 매핑: @Column 기본 키 매핑: @Id 연관관계 매핑: @ManyToOne,@JoinColumn @Entity 기본값: 클래스 이름을 그대로 사용(예: Member) 같은 클래스 이름이 없으면 가급적 기본값을 사용한다. @Table 엔티와 매핑할 테이블 지정 옵션 name : 매핑할 테이블 명을 기입 catalog ,schema : 데이터베이스 catalog , schema 매핑 uniqueConstraints(DDL) : DDL생성시에 유니크 제약 조건 생성 @Table(uniqueConstraints = {@UniqueConstraint( name = "NAME_AGE_UNIQUE", colu..
특징 영속 → 준영속 영속 상태의 엔티티가 영속성 컨텍스트에서 분리 (detached) 영속성 컨텍스트가 제공하는 기능을 사용 못함. 준영속 상태로 만드는 방법 em.detach(entity) 특정 엔티티만 준영속 상태로 전환 Member member = em.find(Member.class, 1L); member.setName("abc"); em.detach(member); // 변경된 내용이 수정된 쿼리가 날아가지 않음. Member member2 = em.find(Member.class, 2L); member2.setName("updateName"); // 해당건은 업데이트가 실행이 된다! tx.commit(); em.clear() 영속성 컨텍스트를 완전히 초기화 테스트 케이스 작성할때 보통 눈으로..
3. 플러시 플러시란 ? 영속성 컨텍스트의 변경내용을 데이터베이스에 반영하는 것 플러시 발생하면? 변경 감지 수정된 엔티티 쓰기 지연 SQL 저장소에 등록 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송 (등록, 수정, 삭제 쿼리) 영속성 컨텍스트를 플러시하는 방법 em.flush() 플러쉬를 하더라도, 1차캐시는 없어지지 않음, 쓰기지연 SQL 저장소에 등록된 쿼리를 데이터베이스에 반영하는 과정일 뿐. 트랜젝션 커밋 ( 플러시 자동 호출) JPQL 쿼리 실행 ( 플러시 자동 호출 ) em.persist(memberA); em.persist(memberB); em.persist(memberC); query = em.createQuery("select m from Member m", Member.cl..
2. 영속성 컨텍스트 영속성 컨텍스트란? 엔티티를 영구 저장하는 환경 이라는 뜻 영속성 컨텍스트는 논리적인 개념 눈에 보이지 않음 엔티티 매니저를 통해서 영속성 컨텍스트에 접근 0.영속성 컨텍스트의 이점 애플리케이션이랑 데이터베이스 사이에 무언가의 상태가 있다. (영속성 컨텍스트) 1차 캐시 동일성(identity) 보장 트랜잭션을 지원하는 쓰기 지연 (transactional write-behind) 변경 감지 (Dirty Checking) 지연 로딩(Lazy Loading) 등등 의 이점을 가진다. 1. 1차 캐시 1-1. 엔티티 조회, 1차 캐시 //객체를 생성한 상태 (비영속) Member member = new Member(); member.setId("member1"); member.setUs..
아래의 구조와 같이 현재 하바쪽 플래닛관련 프로젝트를 생성했습니다. 큰 구조는 project-module (가칭 명칭은 알아서 바꾸시면 됩니다. ) 이라는 껍데기 (부모모듈)이 하위 모듈을 감싸는 형태로 개발되어있습니다. 모듈화의 장점중 하나는 공통적으로 쓰이는 model(entity, request, response 등) 객체와, util 등을 한곳에 두고 추후 빌드시 jar화 되어 각각 프로젝트에 포함되어 사용하기 때문에 한곳만 수정하면 공통적인 부분은 모두 반영할 수 있습니다. 즉, project-module은 gradle module 프로젝트입니다. project-module(parents) : 하위 모듈을 감싸기위한 root 프로젝트라고 보시면 됩니다. project-module 프로젝트에는 하..