| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 자바스크립트
- oracle
- Nike
- 주식
- JavaScript
- 덩크 로우
- GIT
- draw
- 제이쿼리
- jQuery
- Linux
- 주식공부
- 발매예정
- sacai
- 드로우
- Python
- 리액트
- 코로나19
- 나이키
- Dunk Low
- stockx.com
- react
- Java
- 파이썬
- dunk high
- 덩크 하이
- 덩크로우
- 오라클
- dunklow
- 리눅스
- Today
- Total
목록Spring (8)
Life goes slowly...
Spring Data JPA에서 JpaRepository를 사용하면서 직접 쿼리를 작성하는 방법은 크게 세 가지가 있다. 단순한 이름 규칙부터 복잡한 동적 쿼리까지 상황에 맞게 선택하시면 된다. 1. 쿼리 메소드 (Query Methods)가장 간단한 방법입니다. 메소드 이름을 특정 규칙에 맞춰 선언하면 JPA가 이를 해석해 SQL을 자동으로 생성한다.단순조회나 간단한 조건의 쿼리를 사용할때 사용하는 방식이다.(And, Or정도)장점: 간단함, 별도의 쿼리 작성 불필요.단점: 조건이 많아지면 메소드 이름이 너무 길어짐.public interface UserRepository extends JpaRepository { // SELECT * FROM user WHERE email = ? Optio..
1. ExpressionUtils란?ExpressionUtils는 Expression(표현식)을 조합하거나서브쿼리를 select 절에 포함시킬 때 사용하는 유틸입니다.주 용도서브쿼리 → 컬럼처럼 사용alias 지정산술 연산용 Expression 구성2. 서브쿼리 기본 (JPAExpressions)queryFactory .selectFrom(member) .where(member.age.gt( select(member.age.avg()) .from(member) )) .fetch(); 3. Select 절에 서브쿼리 넣기 (ExpressionUtils.as)queryFactory .select( member.username, ..
1. Querydsl이란?Querydsl은 타입 세이프(Type-safe) 한 방식으로 JPQL을 작성할 수 있게 해주는 라이브러리입니다.문자열 JPQL 사용하지 말것 → 컴파일 시 오류 미검출Querydsl 사용 → 컴파일 타임에 쿼리 오류 검출동적 쿼리에 매우 강함JPA와 자연스럽게 결합2. 의존성 설정 (Spring Boot + Gradle)Gradle 설정dependencies { implementation 'com.querydsl:querydsl-jpa' annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jpa' annotationProcessor 'jakarta.persistence:jakarta.persistence-api' ..
ExpressionUtils로 산술 연산하기 ❌ 잘못된 시도ExpressionUtils.as(subQuery1, "a") .subtract(ExpressionUtils.as(subQuery2, "b")); -- ExpressionUtils는 계산용 API가 아니기 때문에 불가능 올바른 산술 연산 방법 (NumberExpression) - 서브쿼리끼리 “계산”을 하려면, 각각을 JPAExpressions로 만들고, select 절에서는 ExpressionUtils.as로 alias를 주고, where/조건절에서는 서브쿼리 Expression을 그냥 연산에 넣어서 사용 기본 개념 정리Querydsl(JPA)에서 서브쿼리는 select 절, where 절에서만 사용 가능.select 절:Exp..
JPA 초보자가 자주 하는 실수 Top 5 JPA(Java Persistence API)는 자바 개발자에게 ORM(Object-Relational Mapping)의 강력함을 제공하여 객체 지향적으로 데이터베이스와 상호작용할 수 있게 해줍니다. 하지만 강력한 만큼 제대로 사용하지 않으면 예상치 못한 문제에 부딪힐 수 있습니다. JPA를 처음 접하는 개발자들이 자주 하는 실수 5가지와 이를 피하는 방법을 알아보겠습니다. 1. Entity에 비즈니스 로직 넣기 → Service로 빼기문제점: Entity는 데이터베이스 테이블과 매핑되는 순수한 객체여야 합니다. 여기에 비즈니스 로직이 들어가면 Entity의 역할이 모호해지고, 재사용성이 떨어지며, 테스트하기 어려워집니다. Entity는 데이터의 상태를 표현하는..
JPA의 핵심 개념 5가지 !!! - 이것만 알고 있어도 절반은 이해하고 개발을 할수 있다.JPA 핵심 개념 5가지 - Entity, EntityManager , Repository, Persistence Context, Transaction ① Entity (엔티티)DB 테이블과 1:1로 매핑되는 Java 클래스@Entitypublic class Member { @Id @GeneratedValue private Long id; private String name;}정의: 데이터베이스의 테이블과 매핑(연결)되는 자바 클래스입니다.역할: 실제 데이터가 담겨 있는 객체입니다. 이 클래스의 인스턴스(객체) 하나는 데이터베이스 테이블의 한 행(Row)에 해당합니다. 개발자는 이 객체를 생성..
JPA가 코드 내부적으로 데이터를 관리와 데이터베이스와 소통 핵심 구성 요소를 동작구조에 대해서 설명하도록 하겠습니다.JPA의 동작 구조를 이해할 때 가장 중요한 것은 **'영속성 컨텍스트(Persistence Context)'**라는 입니다.1. JPA의 핵심 구성 요소EntityManagerFactory (공장): 딱 한 번만 만들어지는 커다란 공장입니다. 애플리케이션이 실행될 때 생성되어 DB 연결 정보 등을 준비합니다.EntityManager (일꾼): 고객의 요청(트랜잭션)이 올 때마다 공장에서 파견되는 일꾼입니다. DB에 저장하거나 수정하는 모든 일을 이 일꾼이 처리합니다.Persistence Context (영속성 컨텍스트): 일꾼이 들고 다니는 *임시 메모리 저장소(장바구니)*입니다. 자바..
초보자도 쉽게 이해하는 Spring Data JPA에 대해 설명해 드릴게요.먼저 각 용어가 의미하는 내용에 대해서 설명이 필요합니다. 1. JPA가 없을 때의 문제점옛날에는 자바 애플리케이션에서 데이터베이스에 데이터를 저장하거나 가져오려면, 개발자가 직접 복잡한 SQL 쿼리문을 하나하나 작성해야 했습니다. 마치 서로 다른 언어를 사용하는 두 사람 사이에 통역사가 없는 것과 같아서, 개발자는 SQL이라는 낯선 언어와 씨름하며 머리를 싸매야 했죠. //기존 JDBC와 SQL 방식Java 코드 ↓SQL 작성 ↓DB 실행 ↓ResultSet ↓Java 객체로 변환 2. JPA: 자바와 데이터베이스의 다리**JPA(Java Persistence API)**는 이런 문제를 해결해주는 '다리' 또는 '통..