Hey everyone,
If you’ve ever managed enterprise Jakarta Persistence (JPA) setups in complex Gradle multi-module projects, you know the pain: managing verbose <class> tags in persistence.xml, fighting runtime exceptions caused by naming typos in @NamedQuery blocks, or dealing with dirty build states because a bytecode manipulation plugin broke incremental caching rules.
We built JPersist to solve these issues permanently at build time. It is an open-source suite of modern, high-performance, and Gradle Configuration Cache-compliant plugins that automate your entire persistence toolbelt using high-speed ASM bytecode scanning.
We just pushed v1.7.0 to production, which introduces some major capabilities:
🌟 Core Highlights of the Suite
-
Compile-Time Query Linting: Uses an isolated ANTLR4 parser loop to validate your
@NamedQuerystrings against your compiled bytecode. If you make a typo in an attribute name, the build fails before deployment. -
Multi-Tenant Schema Validation: You can now configure multiple database connection profiles to validate your entity mappings across multiple live tenant partitions simultaneously during the
checklifecycle. -
Granular Incremental Tracking: Tasks track source modifications via flat file collection streams, protecting your delta compilation metrics from aggressive
JavaCompiledirectory erasure. -
GraalVM Native Image Readiness: Generates native reflection configurations (
reflect-config.json) out of the box for all discovered entities.
⚡ Quick Comparison
| Standard Gradle Setup | The JPersist Advantage |
|---|---|
❌ Manual <class> tagging required |
✅ ASM-powered bytecode scanning auto-detects entities |
| ❌ Named query errors only at runtime | ✅ Compile-time query linting catches JPQL/HQL syntax errors before deployment |
| ❌ Broken workspace compiler sync | ✅ Automated IDE indexing hooks into Buildship and IntelliJ out-of-the-box |
We would love to get your feedback on the architecture! If you want to check out the source code, run the multi-module example templates, or read the full user documentation guides:
🔗 GitHub Repository: https://github.com/jpersist/persistence
🔗 User documentation: https://jpersist.github.io/persistence/plugins/guide/latest/
Top comments (0)