DEV Community

Yannick Ebongue
Yannick Ebongue

Posted on

Show Dev: JPersist v1.7.0 — Zero-Boilerplate JPA Build Automation for Gradle

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 @NamedQuery strings 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 check lifecycle.
  • Granular Incremental Tracking: Tasks track source modifications via flat file collection streams, protecting your delta compilation metrics from aggressive JavaCompile directory 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)