일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 세션이란
- 세션의 정의
- 구글 보안 api 활용
- optional
- 인터셉터의 정의
- abap value in field Data Class error
- filter vs interceptor
- 필터의 정의
- SpringMVC
- 김영한
- Validation
- spring MVC
- controller
- 401오류
- application-properties
- @Controller
- Testcode
- jpa
- .orelseThrow
- MVC
- 세션vs쿠키
- n+1
- springSecurityFilterChain 오류
- 유연한 컨트롤러1 - v5
- 쿠키의 정의
- 필터vs인터셉터
- BindingResult
- spring
- 쿠키란
- java.lang.AssertionError
- Today
- Total
목록[WEB]Back-end/JPA (16)
ABAP DUMP ERROR 24시
# 자바 ORM 표준 JPA 프로그래밍 김영한님의 책을 읽고 정리한 글입니다. 1. SQL 의존 개발의 문제점 1. 진정한 의미의 계층 분할이 어렵다. = 결국 SQL ,SQL, SQL... 2. 엔티티를 신뢰할수 없다 = 연관, 상속.. 결국에는 SQL을 까서 구조를 확인해야한다. 3. 추상화 ,캡슐화, 정보은닉,상속 ,다형성 과 같은 객체지향의 강점을 사용하기 어려워진다. 1. SQL 을 직접 사용하는 경우 => JAVA APP의 JDBC API 를 사용해서 SQL를 DB에 전달한다. 이때 CRUD 로직 작성 방법 1. 회원 객체 생성 public class Member(){ private String memberId; } 2. 회원 조회 기능 Dao 제작을 해야 한다면? public class Me..
# 인프런 김영한의 자바 ORM 표준 JPA 프로그래밍 - 기본편을 개인적으로 정리한 글입니다. 정리 Q . Fetch,join의 한계가 뭐야? 1. as(Alias)를 통해 별칭을 줄 수 없다. => 정합성 장애를 일으킨다. ex) "Select t From Team t join fetch t.members m" //m 같은거 사용 금지 2. 둘 이상의 컬렉션을 fetch join 할수 없다. 일대다, 다대다에서는 DATA의 뻥튀기가 생긴다. 만일 1:多:多 으로 fetch join을 한다면!!! //쓰레기 데이터들이 축적될 가능성이 높다. 3. Collection을 fetch join 하게 되면 페이징 API를 사용할수 없다. setFirstResult(), setMaxResult()를 사용할수 없다..
정리 Q. @OneToMany 일 때 fetch join 시 data의 량이 늘어가는 이유? One의 입장에서 Many를 부를때 One에 해당되는 Many 마다 결과값을 출력해줘야 하므로 출력되는 양이 많아진다. Q. 해결 방법은? distinct를 사용해서 중복을 제거한다. "select distinct t From Team t join fetch t.members" Q. 중복 제거하니까 무조건 OneToMany는 distinct를 써야하네? 사용자의 Needs가 다를수 있으니 상황에 맞춰 쓰자! 살펴보기 Id(PK) Name 1 팀A 2 팀B 3 팀C // One Id(PK) TEMA_ID(FK) NAME 1 1 회원1 2 1 회원2 3 2 회원3 4 NULL 회원4 // Many Query를 "se..
# 인프런 김영한의 자바 ORM 표준 JPA 프로그래밍 - 기본편을 개인적으로 정리한 글입니다. 정리 Q . fetch join이 뭐야? 실무에서 자주 사용하며, 연관된 엔티티 컬렉션을 sql문 한방으로 조회하는 쿼리다. 흔히 N+1 문제의 해결 방안으로 제시되곤 한다. //N+1 문제란 JPA에서 query 1개를 호출했는데 DB에는 N개의 query가 호출되어 나가는 현상. Q .fetch = fetchType.EAGER 와 fetch join과의 차이점이 뭐야? 둘다 join query가 나가는 것은 비슷하다. 하지만 EARGER는 묵시적인 특성으로. 내가 나타내지 않는 쿼리명령어 이외의 쿼리가 나가면서 join 이 이루어진다. 따라서 추적이 어렵다. fetch join은 암시적인 특성으로, 내가 ..
# 인프런 김영한의 자바 ORM 표준 JPA 프로그래밍 - 기본편을 개인적으로 정리한 글입니다. 정리 Q. JPQL이 뭐야? JPA를 활용하여 엔티티 객체를 중심으로 개발이 가능하게 하는 쿼리언어이다. Q. JPQL의 특징은 뭐야? 엔티티 객체를 중심으로 개발이 가능해. 하지만 검색 쿼리 작성, 동적 쿼리 작성시에는 문제가 발생한다. Q. 왜 검색 쿼리 작성시에 문제가 발생해? 테이블이 아닌 객체를 대상으로 검색을 하기 때문이야. 왜 객체를 대상으로 검색을 하는 것이 문제가 될까? => 모든 DB를 객체로 변환해서 검색하는 것은 불가하고, 필요한 데이터만 DB에서 불러오려면 검색 조건이 포함된 SQL문이 사용되야하기 때문이다!. Q. JPQL 어떻게 사용해? Select 필드 From 테이블 Where ..