인프런 - 스프링
-
[JPA] JPQL 서브 쿼리인프런 - 스프링/JPA 프로그래밍 - 기본편 2023. 12. 4. 11:46
- 첫 번째 예시처럼 서브 쿼리밖의 쿼리의 m을 그대로 가져오지 않는게 성능이 더 잘나온다. - 조인으로도 안되면 네이티브 쿼리를 쓰거나(네이티브는 웬만하면 비추) 쿼리를 두번 날리거나 혹은 애플리케이션 단에서 데이터를 처리하는 방법들이 있다. - from 절의 서브 쿼리를 사용하는 이유 중 하나는 내부에서는 데이터를 필터링하고 외부에서 SQL 로직이 있는 경우(아직 복잡한 SQL을 다뤄보지 않아서 잘 모르겠다.) 출처: 인프런 김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 https://www.inflearn.com/course/ORM-JPA-Basic 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 K-개빈 킹 이 수식어가 어울리는 강사, 대한민국에서 사투리가 가장 섹시한..
-
[JPA] JPQL 조인인프런 - 스프링/JPA 프로그래밍 - 기본편 2023. 12. 4. 10:39
- 세타 조인은 직접적인 관련이 없는 조인으로 cross join 쿼리가 나가게 된다. 출처: 인프런 김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 https://www.inflearn.com/course/ORM-JPA-Basic 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 K-개빈 킹 이 수식어가 어울리는 강사, 대한민국에서 사투리가 가장 섹시한 강사, 내 프로젝트에 의존성으로 추가하고 싶은 강사 강의결제를 고민하는 분들께 1) 너무 훌륭한 강의입니다. 무엇보 www.inflearn.com
-
[JPA] JPQL 페이징인프런 - 스프링/JPA 프로그래밍 - 기본편 2023. 12. 4. 10:08
출처: 인프런 김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 https://www.inflearn.com/course/ORM-JPA-Basic 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 K-개빈 킹 이 수식어가 어울리는 강사, 대한민국에서 사투리가 가장 섹시한 강사, 내 프로젝트에 의존성으로 추가하고 싶은 강사 강의결제를 고민하는 분들께 1) 너무 훌륭한 강의입니다. 무엇보 www.inflearn.com
-
[JPA] JPQL 프로젝션(SELECT)인프런 - 스프링/JPA 프로그래밍 - 기본편 2023. 12. 1. 18:01
- "select m.team from Member m" 이거 보다는 "select t from Member m join m.team t"가 더 직관적이라 이걸 사용하는 것이 낫다. List result = em.createQuery("select m from Member m", Member.class).getResultList(); - 이렇게 조회하게 되면 해당 result는 전부 영속성 컨텍스트에서 관리하게 된다. 예제코드 1. Query 타입으로 조회 2. Object[] 타입으로 조회 3. new 명령어로 조회 - 패키지 명도 입력해야한다. 출처: 인프런 김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 https://www.inflearn.com/course/ORM-JPA-Basic 자바..
-
[JPA] JPQL 기본 문법과 쿼리 API인프런 - 스프링/JPA 프로그래밍 - 기본편 2023. 12. 1. 17:21
- 기본적으로 SQL과 문법이 거의 동일하며 벌크 연산인 update와 delete는 따로 다룬다. 예제 코드 - 이렇게 메서드 체인 형태로도 사용할 수 있다. 출처: 인프런 김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 https://www.inflearn.com/course/ORM-JPA-Basic 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 현업에서 실제로 JPA로 개발을 하고 있습니다. 그런 입장에서보면 지금 작성하고 있는 코드들이 어떻게 작동하는지 이해하는데 큰 도움을 주는 강의입니다. 다음은 제가 느낀 이 강의의 장점들 www.inflearn.com
-
[JPA] 객체지향 쿼리 언어(JPQL) 소개인프런 - 스프링/JPA 프로그래밍 - 기본편 2023. 12. 1. 15:41
JPQL(Java Persistence Query Language) 예제 코드 JPQL의 단점: 동적 쿼리를 작성하기 어렵다. 문자와 문자를 말그대로 더해야 하기 때문에 에러가 발생할 확률이 높음. - QueryDSL은 JPQL에 대해서만 잘알면 문제없이 사용할 수 있다. - 엔티티 매니저를 통해 쿼리를 생성하는 경우에는 자동으로 flush가 되지만 db 커넥션을 통해 쿼리를 생성하는 경우에는 강제로 flush를 하지 않으면 영속성 컨텍스트의 사항이 db에 반영되지 않는다. 출처: 인프런 김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 https://www.inflearn.com/course/ORM-JPA-Basic 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 현업에서 실제..
-
[JPA] 값 타입인프런 - 스프링/JPA 프로그래밍 - 기본편 2023. 11. 30. 23:27
- 이러한 자바 기능 덕분에 side effect 없이 값들을 안전하게 사용할 수 있다. - 임베디드 타입을 사용하면 테이블에 저장되는 것은 동일하지만 객체지향스럽게 코드를 작성할 수 있게 된다. 예제 코드 - 임베디드 타입도 결국 테이블 컬럼들의 모음이기 때문에 테이블에서 외래키를 필드로 가질 수 있듯이 임베디드 타입도 엔티티를 가지고 연관관계를 맺을 수 있으며 또 다른 임베디드 타입도 가질 수 있다. 예제 코드 - 이렇게 작성하게 되면 Address 안의 city, street, zipcode 필드가 중복되게 되어 에러가 발생한다. 결과 쿼리 애너테이션 관련 꿀팁 - 해당 애너테이션에 들어가서 애너테이션 명에 마우스를 올리면 위와 같이 예제를 통한 사용법을 알려준다. 예제 코드 일반 클래스에서 equ..
-
[JPA] 영속성 전이(CASCADE)와 고아 객체인프런 - 스프링/JPA 프로그래밍 - 기본편 2023. 11. 29. 17:53
예제 코드 @Entity public class Member { @OneToMany(mappedBy = "member", cascade = CascadeType.REMOVE) private List postList = new ArrayList(); } @Entity public class Post { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; } - 이 경우에 회원을 삭제하게 되면 관련된 게시글들도 삭제되게 된다. 그러면 영속성 전이는 언제 써야 하는가? - OneToMany에 다 써야하는건 아니고 하나의 부모가 자식들을 관리하는 경우에만 사용하는 것이 좋다. - 즉, 이 자식을 다른 엔..