하이버네이트/JPA - 자바의 ORM.

07. Criteria ! 또다른 쿼리생성방법!

여기서부터 폴더구조를 바꾸도록 하겠습니다. 강좌에 쓰인 것들은 src/main/java에 두고,
기타 인터넷 튜토리얼 소스들을 직접 테스트 해본것은  src/test/java 에 두도록 하겠습니다.
git 에서 내용이 조금 바뀔텐데, foreach 문을 람다식으로 좀 바꾼 것이 있습니다.

1. Criteria 

HQL말고도 SQL문을 쉽게 만들어 내는 방법이 있습니다. 영상에서는 크리테리아가 뭔지만 알아보았지만, 
테스트 폴더쪽에 보면 mykyong님께 받은 튜토리얼 소스가 있습니다. hql과 criteria 의 차이점을 느껴보시고,
다양한 상황에 적절하게 적용하면 좋을 것같습니다.

Session session = factory.getCurrentSession();
session.beginTransaction();
session.getTransaction().commit();

이 사이에 Criteria criteria = session.createCriteria(클래스명.class) 넣어주고 작업하면 됩니다. 

핵심

Criteria criteria = session.createCriteria(Student.class);
criteria.add(Restrictions.gt("age", 22));
criteria.add(Restrictions.le("math", 90));
criteria.addOrder(Order.desc("id"));
/*criteria.setFirstResult(1); 페이징
criteria.setMaxResults(2);*/
List<Student> students = criteria.list();

참고소스

MKyong : http://www.mkyong.com/hibernate/hibernate-criteria-examples/

한글Docs : https://docs.jboss.org/hibernate/orm/3.3/reference/ko-KR/html/querycriteria.html

 

댓글

댓글 본문
작성자
비밀번호
  1. Scratchback
    잘 보고 있습니다. 감사합니다(7)
버전 관리
아라한사
현재 버전
선택 버전
graphittie 자세히 보기