Hai, di materi kali ini saya mau membahas tentang Query di ORM Hibernate Framework, Query pada ORM Hibernate terdiri:

  1. Native Query (SQL)
  2. Hibernate Query Language (HQL) dan Java Persistenct Query Language (JPQL)
  3. Criteria API

Untuk menggunakan query tersebut, misalnya disini saya kasih contoh entity seperti berikut:

Native Query

Native query pada dasarnya kita me-execute query SQL standart dalam object SessionFactory. berikut adalah contoh NativeQuery:

1
2
3
4
5
NativeQuery<Penerbit> query = 
    this.session.createNativeQuery(
        "select * from mapping.alamat", 
        AlamatEntity.class
    );

HQL & JPQL

Hibernate Query Language (HQL) hampir sama dengan SQL tetepi disini accessnya bukan ke table melainkan ke Entity, Berikut adalah contoh penggunaan HQL:

1
2
Query query = entityManager
    .createQuery("from AlamatEntity");

Criteria API

Criteria API sama seperti HQL tpi disini query builder menggunakan Java, berikut adalah contoh penggunaan Criteria API:

1
2
3
4
CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaQuery<AlamatEntity> query = builder.createQuery(AlamatEntity.class);
Root<AlamatEntity> root = query.from(AlamatEntity.class);
query.select(root);