[java] 하이버네이트 쿼리 작성 방법
하이버네이트는 자바 객체와 관계형 데이터베이스 사이에서 데이터 액세스를 관리하기 위한 강력한 도구입니다. 하이버네이트를 사용하여 데이터베이스에서 데이터를 검색하고 조작하는 방법을 배워봅시다.
1. HQL(Hibernate Query Language) 소개
하이버네이트에서 데이터베이스 쿼리를 작성하기 위해 HQL을 사용합니다. HQL은 특정 데이터베이스에 종속되지 않는 객체 지향 쿼리 언어로, 엔티티와 관련된 객체를 대상으로 쿼리를 작성할 수 있도록 합니다.
2. 간단한 HQL 쿼리 작성
아래는 간단한 HQL 쿼리를 작성하는 예제입니다.
String hql = "FROM Employee";
Query query = session.createQuery(hql);
List results = query.list();
위의 예제에서 “FROM Employee”는 Employee 엔티티의 모든 레코드를 검색하는 HQL 쿼리입니다. 이 쿼리는 session 객체를 통해 실행됩니다.
3. 파라미터 사용하기
HQL 쿼리에 파라미터를 전달하려면 다음과 같이 작성할 수 있습니다.
String hql = "FROM Employee E WHERE E.salary > :salary";
Query query = session.createQuery(hql);
query.setParameter("salary", 1000);
List results = query.list();
위의 예제에서 “:salary”는 쿼리에 전달될 파라미터를 나타냅니다. “query.setParameter()” 메서드를 사용하여 파라미터를 설정하고, 이후에 쿼리가 실행됩니다.
4. 기타 HQL 기능
다음은 HQL에서 자주 사용되는 기타 기능입니다:
- 조인: 두 개 이상의 엔티티를 연관시켜 쿼리를 작성할 수 있습니다.
- 집계 함수: COUNT, SUM, AVG 등의 집계 함수를 사용하여 결과를 집계할 수 있습니다.
- 하위쿼리: 서브쿼리를 사용하여 복잡한 조건을 작성할 수 있습니다.
5. 결론
이제 여러분은 하이버네이트를 사용하여 HQL을 작성하고 실행하는 방법을 알게 되었습니다. HQL을 통해 데이터베이스 쿼리를 객체 지향적으로 작성하고 실행하여, 데이터 액세스 계층을 효과적으로 관리할 수 있습니다.
더 많은 정보 및 예제는 하이버네이트 공식 문서를 참고하시기 바랍니다.