일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바제너릭
- sql
- springboot기본설정
- JPAmapping
- MySqlType
- dockercmd
- JDBC connection pool
- embededtype
- jpqlquery
- Git
- JPAproxy
- spring
- 스프링부트기본설정
- OSIV
- 스프링부트
- 에이치투데이터베이스
- javageneric
- 이해와 원리
- 임베디드타입
- jpa
- springbootH2
- springbootproxy
- httppie
- gitinitial
- JPA값타입
- JPA Hint & Lock
- 데이터베이트h2
- 제이피큐엘쿼리
- JPA프록시
- Open EntityManager
- Today
- Total
목록jpa (6)
빡코
Transaction? 쪼갤 수 없는 단위로 한번에 성공 또는 실패하는 것을 의미 한다. 시작: start transaction 완료: commit 실패처리: rollback 영속성 컨텍스트? 테이블과 매핑된 Entity 객체를 관리/보관하는 역할 1. 변경감지(Dirty Check): 영속성 컨텍스트 안에서 불러와진 Entity는 명시적으로 save 를 해주지 않더라도 알아서 변경을 감지하여 저장 2. 쓰기지연: 트랜잭션이 commit 되는 시점에 SQL을 한번에 모아서 DB에 반영한다. 3. 1차 캐싱: entity의 Id를 기준으로 기억하는 기능, 같은 Id로 조회시 총 1번의 select 쿼리만 날라간다.
Spring Data JPA ? 복잡한 JPA 코드를 스프링과 함께 쉽게 사용할 수 있도록 도와주는 라이브러리 Spring Data JPA > JPA(ORM) > Hibernate(JPA 구현체) > JDBC 를 사용한다. JpaRepository를 상속 받은 UserRepository public interface UserRepository extends JpaRepository { Optional findByName(String name); //find: 1건을 가져옴, 반환타입 ? 객체 or null 반환 Boolean existsByName(String name); //쿼리 결과가 존재하는지 확인, 반환타입 boolean long countByAge(Integer age); //SQL의 결과 개수..
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.limit-query-result Spring Data JPA - Reference Documentation Example 119. Using @Transactional at query methods @Transactional(readOnly = true) interface UserRepository extends JpaRepository { List findByLastname(String lastname); @Modifying @Transactional @Query("delete from User u where u.active = false") void del..
상속관계매핑 •관계형 데이터베이스는 상속관계X •슈퍼타입 서브타입 관계라는 모델링기법 이객체 상속과 유사 •상속 관계 매핑: 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 슈퍼타입 서브타입 논리모델을 실제 물리 모델로 구현하는 방법 •각각 테이블로 변환 -> 조인전략 •통합 테이블로 변환 -> 단일테이블전략 •서브타입 테이블로 변환 -> 구현 클래스마다 테이블 전략 주요 어노테이션 •@Inheritance(strategy=InheritanceType.XXX) •JOINED: 조인전략 •SINGLE_TABLE: 단일 테이블 전략 •TABLE_PER_CLASS: 구현 클래스 마다 테이블 전략 •@DiscriminatorColumn(name=“DTYPE”) •@DiscriminatorValue(“..
엔티티 매핑 소개 •객체와테이블매핑: @Entity, @Table •필드와컬럼매핑: @Column •기본키매핑: @Id •연관관계매핑: @ManyToOne,@JoinColumn 객체와테이블매핑 @Entity •@Entity가붙은클래스는 JPA가관리, 엔티티라한다 •JPA를사용해서테이블과매핑할클래스는@Entity필수 •주의 •기본생성자필수(파라미터가없는 public 또는 protected 생성자) •final 클래스, enum, interface, inner 클래스사용X •저장할필드에 final 사용 X @Entity속성정리 •속성: name •JPA에서사용할엔티티이름을지정한다. •기본값: 클래스이름을그대로사용(예: Member) •같은클래스이름이없으면가급적기본값을사용한다. *DDL(Data Definit..
순서 JPA 어노테이션 정리 @Entity @Id @GeneratedValue @Column @Column 어노테이션은 데이터베이스의 테이블에 있는 컬럼과 동일하게 1:1 매칭이 되기 떄문에 Entity 클래스안에 내부 변수로 정의됨. 만약 테이블에 a, b, c 컬럼이 있다면 각각 3개의 @Column 어노테이션을 작성하게 됨. 의도적으로 필요없는 컬럼들을 작성하지 않아도 됨. 데이터베이스 테이브에 실제 a, b, c, d 총 4개의 컬럼이 있더라도 a, b, c 컬럼만 Entity 클래스에 작성해도 무방하다는 의미. @Column 어노테이션은 별다른 옵션을 설정하지 않는다면 생략이 가능함. 즉 Entity 클래스에 정의된 모든 내부변수 기본적으로 @Column 어노테이션이 있다고 볼 수 있음 @Emb..