Skip navigation links
Quarkus - Hibernate ORM with Panache - Runtime 1.8.0.Final

Package io.quarkus.hibernate.orm.panache

API usage

See: Description

Package io.quarkus.hibernate.orm.panache Description

API usage

Hibernate with Panache comes in two flavors, the active record pattern via PanacheEntity and the repository pattern via PanacheRepository. To use the active record pattern, make your entities extend PanacheEntity, use public fields for your columns, use the existing operations defined as static methods on your entity class, and define custom ones as static methods on your entity class:
 @Entity
 public class Person extends PanacheEntity {
     public String name;
     public LocalDate birth;
     public PersonStatus status;
     
     public static Person findByName(String name){
       return find("name", name).firstResult();
     }
     
     public static List<Person> findAlive(){
       return list("status", Status.Alive);
     }
     
     public static void deleteStefs(){
       delete("name", "Stef");
     }
 }
 
To use the repository pattern, create a class implementing PanacheRepository, use the existing operations from your repository and define new ones on your repository class:
 @ApplicationScoped
 public class PersonRepository implements PanacheRepository<Person> {
    public Person findByName(String name){
        return find("name", name).firstResult();
    }

    public List<Person> findAlive(){
        return list("status", Status.Alive);
    }

    public void deleteStefs(){
        delete("name", "Stef");
   }
 }
 

Simplified queries

Normally, HQL queries are of this form: from EntityName [where ...] [order by ...], with optional elements at the end.

If your select query does not start with from, we support the following additional forms:

If your update query does not start with update from, we support the following additional forms:

We also support named queries, for Panache to know that a query is a named query and not an HQL one, you need to prefix the name of the query with '#'.
Author:
Stéphane Épardaud
Skip navigation links
Quarkus - Hibernate ORM with Panache - Runtime 1.8.0.Final

Copyright © 2020 JBoss by Red Hat. All rights reserved.