일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gitinitial
- dockercmd
- javageneric
- springbootproxy
- embededtype
- 스프링부트
- Git
- sql
- springboot기본설정
- jpqlquery
- 자바제너릭
- OSIV
- JPA프록시
- 임베디드타입
- 에이치투데이터베이스
- springbootH2
- httppie
- JPAproxy
- JPA값타입
- 이해와 원리
- MySqlType
- jpa
- JPA Hint & Lock
- Open EntityManager
- JDBC connection pool
- 스프링부트기본설정
- JPAmapping
- 제이피큐엘쿼리
- spring
- 데이터베이트h2
- Today
- Total
목록Java/JPA (20)
빡코
기초설정 > Preferences Build, Execution, Deployment Build Tools Gradle > Build and run using: Gradle IntelliJ IDEA > Run tests using: Gradle IntelliJ IDEA 롬복 적용 1. Preferences plugin lombok 검색 실행 (재시작) 2. Preferences Annotation Processors 검색 Enable annotation processing 체크 (재시작) 3. 임의의 테스트 클래스를 만들고 @Getter, @Setter 확인 gradel 의존관계 보기 ./gradlew dependencies --configuration compileClasspath H2 database..
값 타입이란? JPA는 데이터 타입을 크게 두 가지로 분류함. 1.Entity type 2.Value type Value 타입은 값의 변경을 추적할 수 없는 타입을 말합니다. int, double와 같은 Primitive 타입뿐만 아니라, Integer, String과 같은 클래스도 참조는 가지지만 값의 변경을 추적할 수 없기 때문에 마찬가지로 Value 타입에 속합니다. (값의 변경을 추적할 수 없다는 말은 값을 변경할 수 없다는 의미입니다. Integer, String의 값을 변경하면 참조하는 주소가 바뀝니다.) int, Integer, String 등 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 존재하기 때문에 추적이 변경시 불가능 생명주기를 엔티티에 의존. 의존하는 엔티티가..
프록시란? •em.find() vs em.getReference() •em.find(): 데이터베이스를 통해서 실제엔티티객체조회 •em.getReference():데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회 Member findMember = em.getReference(Member.class, member.getId()); System.out.println("findMember = " + findMember.getClass()); Hibernate: /* insert hellojpa.Member */ insert into Member (createBy, createDate, lastModifiedBy, lastModifiedDate, USERNAME, MEMBER_ID) values (?..
상속관계매핑 •관계형 데이터베이스는 상속관계X •슈퍼타입 서브타입 관계라는 모델링기법 이객체 상속과 유사 •상속 관계 매핑: 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 슈퍼타입 서브타입 논리모델을 실제 물리 모델로 구현하는 방법 •각각 테이블로 변환 -> 조인전략 •통합 테이블로 변환 -> 단일테이블전략 •서브타입 테이블로 변환 -> 구현 클래스마다 테이블 전략 주요 어노테이션 •@Inheritance(strategy=InheritanceType.XXX) •JOINED: 조인전략 •SINGLE_TABLE: 단일 테이블 전략 •TABLE_PER_CLASS: 구현 클래스 마다 테이블 전략 •@DiscriminatorColumn(name=“DTYPE”) •@DiscriminatorValue(“..
다대일 관계[N:1] 다대일 단방향 다대일 양방향 일대다 [1:N] 일대다 단방향 //Member @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String username; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username..
엔티티 매핑 소개 •객체와테이블매핑: @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..