일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPA주의사항
- json
- 스프링 부트 기능
- ERD 작성
- spring서버
- 복합키
- Filter
- uncheck Exception
- git
- jwt메서드
- github
- Q 클래스
- jpa에러
- 빈생성안됨
- 인텔리제이
- 스프링 부트 공식 문서
- json gson 차이
- Error creating bean with name
- JoinColumn
- REST란
- Unsatisfied dependency
- JPA
- 최종 프로젝트
- Spring Spring boot 차이
- 1차캐시
- jpa회원가입
- queryDSL
- @IdClass
- 스프링부트오류
- REST API 규칙
- Today
- Total
목록2023/08/01 (6)
Everyday Dev System
본 글은 다음 글을 참조하여 일부만 변경하여 작성하였으니, 아래 글을 먼저 확인 부탁드립니다. 아래 게시글을 참조하였고, 해당 글은 코드에 대한 자세한 설명만 추가한 글입니다. https://cherrypick.co.kr/querydsl-update-delete/ QueryDSL 수정, 삭제 배치 쿼리 JPQL 배치 쿼리와 같이 영속성 컨텍스트를 무시하고 데이터베이스를 직접 쿼리한다. QItem item = Qitem.item; JPAUpdateClause updateClause = new JPAUpdateClause(em, item); long count = updateClause.where(item.name.eq("체리픽")) cherrypick.co.kr QItem item = Qitem.item;..
JPA(Jakarta Persistence API)는 Java 프로그래밍 언어를 사용하여 관계형 데이터베이스를 다루기 위한 자바 ORM(Object-Relational Mapping) 기술입니다. JPA를 사용하는 이유와 그것이 어떻게 데이터 모델을 단순화하고 데이터 흐름을 정교하게 만드는 데 도움이 되는지 설명드리겠습니다. ORM의 편리함: JPA는 ORM의 한 종류로, 개발자가 데이터베이스와 객체 지향 프로그래밍 언어 간의 간격을 줄여줍니다. 즉, 개발자가 직접 SQL 쿼리를 작성하지 않고도 객체를 데이터베이스 테이블에 매핑하고 데이터를 읽고 쓸 수 있게 해줍니다. 이렇게 하면 데이터베이스와의 상호작용이 단순화되고, 개발자가 데이터베이스 세부 사항에 신경 쓰지 않고도 빠르고 효율적으로 개발할 수 있습..
먼저, 선행되어야 하는 것들 입니다. 1. application에 @EnableJpaAuditing 추가 2. TimeStamp 클래스 생성 후 엔티티 클래스에서 상속 (Channel, Thread, Mention) 아래와 같이 TimeStamp 를 상속한 Channel 클래스의 createdAt, modifiedAt은 Auditing 을 통해 자동으로 들어가는 것을 알 수 있습니다. createdAt, modifiedAt 은 구현체 없이 동작하지만 createdBy, modifiedBy 는 구현체가 필요합니다. @Entity public class Channel extends TimeStamp { } package me.chaeyoung.jpa.common; import jakarta.persisten..
Repository 인터페이스의 메소드 이름을 기반으로 쿼리를 생성하는 기능에 한계가 있는 경우, Q 클래스를 사용하여 더 복잡하고 유연한 쿼리를 작성할 수 있습니다. QueryDSL을 사용할 때, @Entity 어노테이션이 붙은 클래스에 대해 자동으로 Q 클래스가 생성됩니다. Q 클래스는 해당 엔티티 클래스와 동일한 패키지에 위치하며, 자동으로 생성됩니다. 따라서, QUser 클래스를 사용하기 위해서는 해당 클래스를 import하고, 인스턴스를 생성해야 합니다. 아래 예시에서 QThread 클래스는 me.chaeyoung.jpa.thread 패키지에 위치하고 있기 때문에, ThreadServiceImpl 클래스 내부에서는 QThread 클래스를 import하지 않고도 사용할 수 있습니다. 아래처럼 Th..
chat GPT에도 물어보고 해당 경로로 가서 봤지만, 찾지 못했다. 결국 파일 디렉터리 하나하나 들어가서 찾아보았다. build 폴더도 아닌! out 폴더 내에 있었다. 여기서 궁금한 점이 생겼다. 위에 클래스는 MentionId 라는 클래스로, Mention 엔티티의 복합키를 설정하기 위한 파일이다. 임베디드 클래스는 JPA에서 다른 엔티티 클래스에 포함되는 복합 속성을 나타내는 클래스로, 데이터베이스에 별도의 테이블로 매핑되지 않고, 그를 포함하는 Mention 엔티티 클래스의 컬럼으로 매핑된다. 그런데, 왜 Q클래스가 생성이 되었을까? @Entity 어노테이션이 기재된 클래스만 생성되는 것이 아니였나? MentionId 클래스는 @Embeddable 어노테이션이 붙은 클래스이기 때문에 임베디드(e..
참조 : 내배캠 JPA 심화 강의 자료 https://teamsparta.notion.site/SpringData-QueryDSL-85b57e18a5204e70b6035a319d63f866 오류 시 해결 1. QChannel 이 활성화가 안될 경우 main 메서드가 있는 클래스를 다시 실행. 2. 테스트 코드시 Repository의 Bean 생성이 안될 경우에는 1) main 메서드가 있는 클래스에 아래 어노테이션 기재 여부 확인 @SpringBootApplication @EnableJpaRepositories 2) 그럼에도 안 될 경우에는 테스트 코드에 @SpringBootTest 어노테이션이 명시되어있는지 확인 3) 그래도 안된다면, Repository 클래스에 상속한 클래( JpaRepository..