본문 바로가기

JPA

Hibernate Criteria 하이버네이트 기본 쿼리 정리

Hibernate 기본 쿼리 정리

 

기본 Criteria 쿼리
session.createCriteria(User.class);

 

 

Criteria 정렬

addorder : 정렬

Order.asc : 오름차순

Order.desc : 내림차순

session.createCriteria(User.class)
.addOrder(Order.asc("id"))
.addOrder(Order.desc("age"));

 

 

Criteria 비교 표현식

eq : 같다 (==)

gt : ~보다 큰 ( > )

lt : ~보다 적은 ( < )

ge : ~보다 크거나 같은 ( >= )

le : ~보다 작거나 같은 ( <= )

between : ~ 사이

in : 모두 포함

isNull : NULL 인 데이터

isNotNull : NULL이 아닌 데이터

ignoreCase() : 소문자로 바꾸기

 

session.createCriteria(User.class)
.add(Restrictions.eq("id", "id001"));

session.createCriteria(User.class)
.add(Restrictions.eq("id", "ID001").ignoreCase());

session.createCriteria(User.class)
.add(Restrictions.gt("age", new Integer(100)));

session.createCriteria(User.class)
.add(Restrictions.lt("age", new Integer(100)));

session.createCriteria(User.class)
.add(Restrictions.between("age", new Integer(100), new Integer(200)));

String[] emails = {"oh.gmail.com", "hj.gmail.com"};
session.createCriteria(User.class)
.add(Restrictions.in("email", emails));

session.createCriteria(User.class)
.add(Restrictions.isNull("id"));

session.createCriteria(User.class)
.add(Restrictions.isNotNull("id"));

 

 

LIKE 절

START : 문자열의 첫부분이 패턴과 일치 ("test%")

END : 문자열의 끝부분이 패턴과 일치 ("%test")

ANYWHERE : 문자열 어디서나 패턴이 일치 ("%test%")

EXACT : 전체 문자열 패턴과 일치 ("test")

 

session.createCriteria(User.class)
.add(Restrictions.like("id", "test", MatchMode.START));

session.createCriteria(User.class)
.add(Restrictions.like("id", "test", MatchMode.END));

session.createCriteria(User.class)
.add(Restrictions.like("id", "test", MatchMode.ANYWHERE));

session.createCriteria(User.class)
.add(Restrictions.like("id", "test", MatchMode.EXACT));

 

 

 페이징

setFirstResult : 조회 시작 위치

setMaxResults : 조회할 데이터의 수

 

session.createCriteria(User.class)
.setFirstResult(1)
.setMaxResults(100);

 

 

결과 조회

list : 쿼리 결과를 목록으로 반환

uniqueResult : 쿼리 결과를 단일 인스턴스로 반환 (결과를 반환하지 않으면 null)

 

session.createCriteria(User.class)
.list();

session.createCriteria(User.class)
.uniqueResult();

 

 

 

 

'JPA' 카테고리의 다른 글

[Hibernate] JPA Hibernate 시간 자동 저장 Insert, Update  (0) 2020.06.22