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
- 인터셉터
- 스프링부트
- 리터럴
- 스프링공부
- jpa api
- SpringBoot
- rejectValue
- 예외처리
- reject
- ArgumentResolver
- Java
- 백엔드 개발자 공부
- Intercepter
- 향해플러스백엔드
- exception
- 항해99
- hypertexttransferprotocol
- JPA
- react실행
- thymleaf
- filter
- 향해99
- 백엔드 개발자 역량
- BindingResult
- 로그인
- React
- 항해플러스
- 컨트
- HTTP
- 향해플러스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |