Overview of Fenix
developFenix is a Spring Data JPA extension library designed to simplify the writing of complex and dynamic JPQL (Java Persistence Query Language). It aims to bridge the gap between the simplicity of Spring Data JPA for basic CRUD and the powerful dynamic SQL capabilities found in MyBatis.
Key capabilities include:
- Four ways to write dynamic SQL: Using XML, Java fluent (chaining) API, dynamic condition annotations, and dynamic
Specificationconstruction. - ActiveRecord pattern support.
- Enhanced Batch Operations: Faster support for batch 'create/delete/update' operations, including incremental updates for non-null properties.
- ID Generation: Built-in support for Snowflake algorithm and
NanoIdprimary key generation strategies. - Flexible Result Mapping: SQL execution results can be mapped to any custom entity object, offering a simpler alternative to standard JPA projections.
- Extensibility: Allows for custom XML semantic tags and tag handlers to generate custom SQL fragments and parameters.