CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-io-quarkus--quarkus-bom

Cloud Native, Container First Java framework for building efficient Java applications with fast startup times and low memory usage

Pending
Overview
Eval results
Files

data-persistence.mddocs/

Data Persistence and ORM

Quarkus provides Hibernate ORM integration with Panache for simplified data access, transaction management, and support for both imperative and reactive database operations.

Panache Entity Framework

PanacheEntity Base Class

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.

PanacheRepository Interface

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.

Transaction Management

@Transactional Annotation

@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

docs

cdi-dependency-injection.md

configuration.md

core-runtime.md

data-persistence.md

index.md

reactive-programming.md

rest-web-services.md

scheduling.md

security.md

testing.md

tile.json