Cloud Native, Container First Java framework for building efficient Java applications with fast startup times and low memory usage
—
Quarkus provides Hibernate ORM integration with Panache for simplified data access, transaction management, and support for both imperative and reactive database operations.
public class PanacheEntity {
public void persist();
public void delete();
public static <T extends PanacheEntity> List<T> listAll();
public static <T extends PanacheEntity> T findById(Object id);
public static <T extends PanacheEntity> long count();
public static <T extends PanacheEntity> List<T> find(String query, Object... params);
public static <T extends PanacheEntity> T findFirst(String query, Object... params);
}Base class providing active record pattern for entity persistence.
public interface PanacheRepository<Entity> {
void persist(Entity entity);
void delete(Entity entity);
List<Entity> listAll();
Entity findById(Object id);
long count();
List<Entity> find(String query, Object... params);
}Repository pattern interface for data access operations.
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Transactional {
TxType value() default TxType.REQUIRED;
Class[] rollbackOn() default {};
Class[] dontRollbackOn() default {};
}Standard JTA transaction management annotation.
Usage Example:
@Entity
public class User extends PanacheEntity {
public String name;
public String email;
}
@ApplicationScoped
public class UserService {
@Transactional
public User createUser(String name, String email) {
User user = new User();
user.name = name;
user.email = email;
user.persist();
return user;
}
}Install with Tessl CLI
npx tessl i tessl/maven-io-quarkus--quarkus-bom