일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- json gson 차이
- JPA주의사항
- Unsatisfied dependency
- uncheck Exception
- github
- git
- 스프링부트오류
- json
- JoinColumn
- spring서버
- Filter
- Q 클래스
- REST란
- 인텔리제이
- 스프링 부트 기능
- jpa에러
- 1차캐시
- 빈생성안됨
- @IdClass
- 복합키
- jwt메서드
- 스프링 부트 공식 문서
- jpa회원가입
- Error creating bean with name
- REST API 규칙
- Spring Spring boot 차이
- 최종 프로젝트
- ERD 작성
- queryDSL
- JPA
- Today
- Total
Everyday Dev System
8월 첫째주 개발 공부 정리 본문
1. Spring Framework와 JPA를 사용한 DB 작업
- EntityManager는 JPA 인터페이스의 일부, Entity를 DB와 맵핑해주는 ORM 기술을 정의한 인터페이스이다.
@Repository
public class ChannelRepository {
@PersistenceContext
EntityManager entityManager;
// persistenceContext 를 주입받아서 EntityManager 를 사용한다.
public Channel insertChannel(Channel channel){
entityManager.persist(channel);
return channel;
}
public Channel selectChannel(Long id) {
return entityManager.find(Channel.class,id);
}
}
2023.07.31 - [내배캠 주요 학습/JPA 심화] - Spring Framework와 JPA 활용
Spring Framework와 JPA 활용
package me.chaeyoung.jpa.channel; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import org.springframework.stereotype.Repository; @Repository public class ChannelRepository { @PersistenceContext EntityManager enti
cdev.tistory.com
2. N : 1 양방향 관계 설정 코드
2023.07.31 - [내배캠 주요 학습/JPA 심화] - JPA) N : 1 관계 맵핑 (thread : Channel)
JPA) N : 1 관계 맵핑 (thread : Channel)
스레드가 채널 안에 여러개가 있으므로, 다대1 양방향 관계입니다. 아래와 같이 Entity 클래스 코드를 작성할 수 있습니다. 1. Channel 엔티티 클래스 코드 public void addThread(Thread thread){ this.threadList.add
cdev.tistory.com
2023.07.31 - [내배캠 주요 학습/JPA 심화] - JPA) N : 1 관계 맵핑 (Thread : Channel : User)
RawJPA 다대다 관계 테스트 코드
package me.chaeyoung.jpa.userChannel; import me.chaeyoung.jpa.channel.Channel; import me.chaeyoung.jpa.channel.ChannelRepository; import me.chaeyoung.jpa.user.User; import me.chaeyoung.jpa.user.UserRepository; import org.junit.jupiter.api.Test; import org.
cdev.tistory.com
3. 복합키
2023.07.31 - [내배캠 주요 학습/JPA 심화] - JPA 복합키 설정하기 - @IdClass
JPA 복합키 설정하기 - @IdClass
PK를 없애고 FK 두개로 복합키를 설정하는 방법이다. 2가지의 방식이 있는데, @IdClass로 하는 방법 먼저 소개하겠다. @EmbaddedId로 하는 방법은 다음 글을 참조하면 된다. 2023.07.31 - [내배캠 주요 학습/
cdev.tistory.com
2023.07.31 - [내배캠 주요 학습/JPA 심화] - JPA 복합키 설정하기 - @EmbeddedId
JPA 복합키 설정하기 - @EmbeddedId
복합키 위에 @EmbeddedId를 기재하여 사용하는 방법이다. > 1. @Embeddable 과 @EmbeddedId와 매핑 2. @MapsId("user_id") 와 @Column(name="user_id") 이 매핑이 되므로, 값이 동일 복합키 UserChannelId 클래스 코드 1. @Embedda
cdev.tistory.com
4. JpaRepository 기능 제한하기 및 추가하기
2023.07.31 - [내배캠 주요 학습/JPA 심화] - JpaRepository 기능 제한하기
JpaRepository 기능 제한하기
Repository의 기능을 제한하거나 추가해야 할 필요가 있다. JpaRepository는 기본적으로 모든 기능을 제공하기 때문에 리스크 따라서 원하는 기능 메소드만 구현하도록 제한해야 한다. @RepositoryDefinition
cdev.tistory.com
2023.07.31 - [내배캠 주요 학습/JPA 심화] - Repository 에 기능 추가하기
Repository 에 기능 추가하기
Repository 에 기능 추가하기 delete() 메소드의 내부 기능 확인하기 delete 호출 시 영속성 상태인지 확인한다. 영속성 컨텍스트에 없다면(!em.contains(entity)) 엔티티를 조회해서 영속성 상태로 바꾼다.
cdev.tistory.com
5. QueryDSL
2023.08.01 - [내배캠 주요 학습/JPA 심화] - QueryDsl 기초
QueryDsl 기초
참조 : 내배캠 JPA 심화 강의 자료 https://teamsparta.notion.site/SpringData-QueryDSL-85b57e18a5204e70b6035a319d63f866 오류 시 해결 1. QChannel 이 활성화가 안될 경우 main 메서드가 있는 클래스를 다시 실행. 2. 테스트
cdev.tistory.com
2023.08.01 - [나의 호기심] - QueryDSL에서 Q 클래스는 어디에 위치해있을까?
QueryDSL에서 Q 클래스는 어디에 위치해있을까?
chat GPT에도 물어보고 해당 경로로 가서 봤지만, 찾지 못했다. 결국 파일 디렉터리 하나하나 들어가서 찾아보았다. build 폴더도 아닌! out 폴더 내에 있었다. 여기서 궁금한 점이 생겼다. 위에 클래
cdev.tistory.com
6. QueryDSL 심화
2023.08.01 - [내배캠 주요 학습/JPA 심화] - QueryDSL 활용 코드
QueryDSL 활용 코드
Repository 인터페이스의 메소드 이름을 기반으로 쿼리를 생성하는 기능에 한계가 있는 경우, Q 클래스를 사용하여 더 복잡하고 유연한 쿼리를 작성할 수 있습니다. QueryDSL을 사용할 때, @Entity 어노
cdev.tistory.com
2023.08.01 - [분류 전체보기] - QueryDSL 수정, 삭제 배치 쿼리
QueryDSL 수정, 삭제 배치 쿼리
본 글은 다음 글을 참조하여 일부만 변경하여 작성하였으니, 아래 글을 먼저 확인 부탁드립니다. 아래 게시글을 참조하였고, 해당 글은 코드에 대한 자세한 설명만 추가한 글입니다. https://cherryp
cdev.tistory.com
2023.08.02 - [내배캠 주요 학습/JPA 심화] - QueryDSL의 JPAQueryFactory를 활용한 조회문
QueryDSL의 JPAQueryFactory를 활용한 조회문
JPAQueryFactory을 빈으로 등록하기 위해 configuration 클래스를 생성한다. package me.chaeyoung.jpa.configuration; import com.querydsl.jpa.impl.JPAQueryFactory; import jakarta.persistence.EntityManager; import jakarta.persistence.Persistence
cdev.tistory.com
7. 기타
2023.08.04 - [내배캠 주요 학습/JPA 심화] - JPA 쿼리 최적화
JPA 쿼리 최적화
1. JPA 가 1차 캐시(영속성 컨텍스트) 를 통해 필요없는 쿼리는 날라가지 않도록 쿼리를 최적화함. 그런데, insert와 delete 쿼리문이 다 날라가는 경우가 있다. 이때 확인해야 할 사항은? 1) 해당 함수
cdev.tistory.com
2023.08.04 - [내배캠 주요 학습/매일 공부] - checked, unchecked Exception - rollback 이슈
checked, unchecked Exception - rollback 이슈
Exception에 대한 글 2023.08.04 - [나의 호기심] - Exception 뜯어보기 Exception 뜯어보기 Exception에 대해서 자세히 살펴보겠습니다. Exception 아래 사진을 보면 Throwable 클래스를 상속한 Exception 과 Error 클래스
cdev.tistory.com
2023.08.04 - [나의 호기심] - Exception 뜯어보기
Exception 뜯어보기
Exception에 대해서 자세히 살펴보겠습니다. Exception 아래 사진을 보면 Throwable 클래스를 상속한 Exception 과 Error 클래스가 있습니다. 아래는 Exception 을 상속한 RuntimeException 입니다. 여기서 쓰인 주석
cdev.tistory.com
'내배캠 주요 학습 > TIL : Today I Learned' 카테고리의 다른 글
스프링 부트 버전에 따른 Swagger 활용 차이 (0) | 2023.08.17 |
---|---|
react로 프론트 구현 시도 중 에러 해결 (0) | 2023.08.08 |
7월 마지막주 WIL (0) | 2023.07.30 |
wsl에서 안되면 power shell을 써라 (0) | 2023.07.26 |
@ExceptionHandler 사용법 (0) | 2023.07.25 |