Free Lines Arrow
본문 바로가기
728x90

DataBase/JPA40

[JPA] JPQL 문법 JPQL 문법 JPQL 문법은 쿼리와 유사하다. 엔티티와 속성은 대소문자 구분한다.(Member, age 처럼) - select m from Member as m where m.age > 18 - 객체에 있는것과 동일하게 써야 한다. JPQL 키워드는 대소문자 구분이 없다. - select, from where 등 select select 절 from 절 [where 절] [groupby 절] [having 절] [orderby 절] update update 절 [where] Delete delete 절 [where] 집합과 정렬 select COUNT(m) // 회원수 SUM(m.age) // 나이합 AVG(m.age) // 평균나이 MAX(m.age) // 최대 나이 MIN(m.age) // 최소 나.. 2021. 9. 23.
[JPA] JPQL 이란? JPQL 이란? Java Persistence Query Language 이다. 객체지향 쿼리 언어다. - 그렇기 때문에 테이블이 대상이 아니라 엔티티 객체를 대상으로 쿼리한다. JPQL 은 SQL을 추상화 해서 특정 DB SQL 에 의존하지 않는다. JPQL은 SQL로 변환되어 수행된다. 언제 써야 될까? 복잡한 쿼리를 조회할때 사용한다. 예를 들어 18세 이상회원을 조회 할때 find 로는 한계가 있다. 그렇기 때문에 JPQL 을 사용해야된다. JPQL을 기반으로한 기능들 JPA Criteria 크레이티어리아 QueryDSL 네이티브 SQL JDBC API 직접 사용이 가능하다. JPQL 예제 JPQL 은 테이블을 다루는게 아니라 객체를 다룬다. m 은 멤버객체를 조회 하라는 뜻이다. String q.. 2021. 9. 23.
[JPA] 값타입 컬렉션 값 타입 컬렉션 값 타입을 하나 이상 저장 할 때 사용한다. 즉 List 나 Set 을 이용하여 저장하는 것을 말한다. 컬렉션을 DB에 어떻게 표현을 해야 될까? DB 에는 자료구조 개념이 없기 때문에 1:N 으로 풀어야 된다. 예시 멤버에는 좋아하는 음식들 그리고 내가 주문했던 위치들을 있다고 해보자 다음과 같이 표현할수 있다. 값타입 어노테이션 @ElementCollection: - 컬렉션 객체임을 JPA 에게 알려준다. @CollectionTable(name = "ADDRESS", joinColumns = @JoinColumn(name = "MEMBER_ID") ) : - 새롭게 생성되는 테이블에 대한 정보를 입력하는 어노테이션이다. - 컬럼 이름은 ADDRESS 이고 FK 는 MEMBER_ID 로.. 2021. 9. 17.
[JPA] 값타입 JPA의 데이터 타입 JPA의 데이터 분류는 엔티티 타입과 값 타입으로 크게 분류 된다. 값타입은 다양하지만 기본값 타입과 임베디드 타입이 중요하다. 엔티티 타입 @Entity 로 정의하는 객체이다. 데이터가 변해도 식별자로 지속해서 추적이 가능하다. 값 타입 int, integer, String 처럼 단순히 값으로 사용하는 자바 기본 타입이다. 식별자가 없다. 그렇기 때문에 변경시 추적이 불가하다. 값타입 분류 1. 기본값 타입 자바 기본 타입(int, double) 래퍼 클래스(Integer, Long) String 생명주기를 엔티티에 의존한다. 회원을 삭제하면 String name등 같이 삭제된다. 2. 임베디드 타입 복합값 타입 새로운 값 타입을 직접 정의할 수 있다. 기본 생성자가 필수이다. 3.. 2021. 8. 22.
728x90
반응형