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 |
---|