[java] Hibernate의 쿼리 언어

Hibernate는 Java 언어를 사용하는 개발자들이 객체 지향적 방식으로 데이터베이스를 다룰 수 있게 해주는 강력한 도구입니다. Hibernate는 HQL(Hibernate Query Language)이라는 자체 쿼리 언어를 제공하여 SQL과 유사한 문법으로 데이터베이스에 접근할 수 있게 해줍니다.

HQL의 기본 구문

HQL은 SQL과 매우 유사하지만, 엔티티와 속성의 이름을 사용하여 작성됩니다.

예를 들어, 모든 고객의 이름을 가져오기 위한 간단한 SQL 쿼리는 다음과 같습니다.

SELECT name FROM customers;

이에 대응하는 HQL 쿼리는 다음과 같습니다.

select name from Customer;

또는 HQL은 엔티티와 연결된 객체를 직접 가져올 수 있고, 조인과 필터링을 포함할 수 있습니다.

select c.name, a.street from Customer c join c.address a where c.status = 'ACTIVE';

JPQL과의 관련성

HQL은 JPA(Java Persistence API)의 JPQL(Java Persistence Query Language)과 유사합니다. JPQL은 엔티티를 대상으로 쿼리하도록 설계되었고, HQL은 Hibernate의 기능을 보완하여 더욱 풍부한 기능을 제공합니다.

결론

Hibernate의 HQL은 SQL과 유사한 문법을 가지고 있으면서도 객체 지향적인 접근 방식을 제공하여 개발자들이 데이터베이스를 더 효과적으로 다룰 수 있게 해 줍니다.

참고 문헌: Hibernate 공식 문서