Interface | Description |
---|---|
PanacheQuery<Entity> | |
PanacheRepository<Entity> |
Represents a Repository for a specific type of entity
Entity , with an ID type
of Long . |
PanacheRepositoryBase<Entity,Id> |
Represents a Repository for a specific type of entity
Entity , with an ID type
of Id . |
Class | Description |
---|---|
Panache |
Utility class for Panache.
|
PanacheEntity |
Represents an entity with a generated ID field
PanacheEntity.id of type Long . |
PanacheEntityBase |
Represents an entity.
|
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");
}
}
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:
order by ...
which will expand to from EntityName order by ...
<singleColumnName>
(and single parameter) which will expand to
from EntityName where <singleColumnName> = ?
<query>
will expand to from EntityName where <query>
update from
, we support the following additional forms:
from EntityName ...
which will expand to update from EntityName ...
set? <singleColumnName>
(and single parameter) which will expand to
update from EntityName set <singleColumnName> = ?
set? <update-query>
will expand to
update from EntityName set <update-query> = ?
Copyright © 2020 JBoss by Red Hat. All rights reserved.