
System.out.println("memberRepository = " + memberRepository.getClass()); log memberRepository = class jdk.proxy2.$Proxy123 jpaRepository를 extends한 repository를 로그에 찍어봤다. 정체는 프록시였는데, 스프링jpa가 인터페이스를 보고 구현체를 꼿아버린거다. 구현체를 스프링 JPA가 만들어주기 때문에 인터페이스 만으로 메소드를 다 사용이 가능한 것이다. 제네릭 타입 - T : 엔티티 - ID : 엔티티의 식별자 타입 - S : 엔티티와 그 자식 타입 주요 메서드 - save(S) : 새로운 엔티티는 저장하고 이미 있는 엔티티는 병합한다. - delete(T) : 엔티티 하나를 삭제한다...
@Entity @Getter @Setter public class Member { @Id @GeneratedValue private Long id; private String username; public Member(String username) { this.username = username; } protected Member() { } } jpa표준 스펙에 엔티티는 기본생성자가 있어야한다. 생성자는 private가 아닌 protected 정도로 열어둬야 한다고 한다. 왜냐면 JPA 프록시 기술을 쓰는데 JPA가 객체를 프록시로 강제로 객체를 만들기 때문에 열어둬야한다고 스펙에 되어있다.
https://spring.io/projects/spring-data-jpa#overview Spring Data JPA Spring Data JPA, part of the larger Spring Data family, makes it easy to easily implement JPA-based (Java Persistence API) repositories. It makes it easier to build Spring-powered applications that use data access technologies. Implementing a data access l spring.io 스프링 JPA에서 지루하게 반복되는 코드를 자동화 해준다. package jpabook2.jpashop2.repo..
- Total
- Today
- Yesterday
- 로그인
- 항해플러스
- 향해99
- 항해99
- HTTP
- 리터럴
- exception
- BindingResult
- 스프링부트
- 백엔드 개발자 역량
- rejectValue
- 컨트
- 예외처리
- filter
- SpringBoot
- 인터셉터
- reject
- 백엔드 개발자 공부
- react실행
- React
- jpa api
- Intercepter
- hypertexttransferprotocol
- 향해플러스
- ArgumentResolver
- thymleaf
- 향해플러스백엔드
- Java
- 스프링공부
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |