Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
pluginagentmarketplace avatar

Java Jpa Hibernate

  • 540 installs
  • 40 repo stars
  • Updated January 5, 2026
  • pluginagentmarketplace/custom-plugin-java

java-jpa-hibernate is a Java persistence skill at version 3.0.0 that designs JPA entities, optimizes Hibernate queries, configures transactions, and fixes N+1 issues in Spring Boot apps across PostgreSQL, MySQL, Oracle,

About

java-jpa-hibernate is a pluginagentmarketplace custom-plugin-java skill at version 3.0.0 bonded to the 06-java-persistence agent with SASMP 1.3.0. It masters JPA entity design, Hibernate query optimization, transaction management, caching, and N+1 elimination for production Spring Boot applications. Parameters let developers target PostgreSQL, MySQL, Oracle, or H2 and focus on entities, queries, transactions, or caching. Allowed tools include Read, Write, Bash, Glob, and Grep for hands-on codebase work. Reach for java-jpa-hibernate when mapping domain models, tuning fetch plans, or hardening persistence before release. The skill covers production-grade data access patterns rather than introductory ORM tutorials.

  • Covers entity mapping, relationship types, inheritance strategies, lifecycle callbacks and auditing
  • Prevents N+1 queries using JOIN FETCH, EntityGraph, batch fetching, projections and DTOs
  • Configures @Transactional with proper propagation, isolation levels, optimistic and pessimistic locking
  • Implements first-level, second-level and query caching strategies for production performance
  • Debugs persistence issues with focus on database choice and targeted optimization

Java Jpa Hibernate by the numbers

  • 540 all-time installs (skills.sh)
  • +12 installs in the week ending Aug 4, 2026 (Skillselion tracking)
  • Ranked #737 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-java --skill java-jpa-hibernate

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs540
repo stars40
Last updatedJanuary 5, 2026
Repositorypluginagentmarketplace/custom-plugin-java

How do you fix Hibernate N+1 query issues?

Design robust JPA entities, optimize Hibernate queries, configure transactions, and eliminate N+1 performance issues in Java Spring Boot applications.

Who is it for?

Java Spring Boot developers implementing production JPA/Hibernate persistence with entity design, query tuning, and N+1 fixes.

Skip if: Non-JVM stacks, front-end-only work, or teams with no relational database or ORM layer in their Spring Boot service.

When should I use this skill?

The user works on JPA entities, Hibernate queries, transactions, caching, or N+1 performance in a Java Spring Boot backend.

What you get

JPA entity mappings, optimized Hibernate queries, transaction configs, and caching setup for Spring Boot persistence layers.

  • JPA entity mappings
  • optimized Hibernate queries
  • transaction configuration

By the numbers

  • Skill version 3.0.0 with SASMP version 1.3.0
  • Supports 4 target databases: postgresql, mysql, oracle, h2
  • Offers 4 focus areas: entities, queries, transactions, caching

Files

SKILL.mdMarkdownGitHub ↗

Java JPA Hibernate Skill

Master data persistence with JPA and Hibernate for production applications.

Overview

This skill covers JPA entity design, Hibernate optimization, Spring Data repositories, query strategies, and caching. Focuses on preventing N+1 queries and building high-performance persistence layers.

When to Use This Skill

Use when you need to:

  • Design JPA entities with relationships
  • Optimize database queries
  • Configure Hibernate for performance
  • Implement caching strategies
  • Debug persistence issues

Topics Covered

Entity Design

  • Entity mapping annotations
  • Relationship types (1:1, 1:N, N:M)
  • Inheritance strategies
  • Lifecycle callbacks
  • Auditing

Query Optimization

  • N+1 problem prevention
  • JOIN FETCH vs EntityGraph
  • Batch fetching
  • Projections and DTOs

Transactions

  • @Transactional configuration
  • Propagation and isolation
  • Optimistic vs pessimistic locking
  • Deadlock prevention

Caching

  • First and second level cache
  • Query cache
  • Cache invalidation
  • Redis integration

Quick Reference

// Entity with relationships
@Entity
@Table(name = "orders")
public class Order {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "customer_id", nullable = false)
    private Customer customer;

    @OneToMany(mappedBy = "order", cascade = CascadeType.ALL, orphanRemoval = true)
    @BatchSize(size = 20)
    private List<OrderItem> items = new ArrayList<>();

    @Version
    private Long version;

    // Bidirectional helper
    public void addItem(OrderItem item) {
        items.add(item);
        item.setOrder(this);
    }
}

// Auditing base class
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class Auditable {
    @CreatedDate
    @Column(updatable = false)
    private Instant createdAt;

    @LastModifiedDate
    private Instant updatedAt;
}

// Repository with query optimization
public interface OrderRepository extends JpaRepository<Order, Long> {

    // JOIN FETCH to prevent N+1
    @Query("SELECT DISTINCT o FROM Order o JOIN FETCH o.items WHERE o.status = :status")
    List<Order> findByStatusWithItems(@Param("status") Status status);

    // EntityGraph alternative
    @EntityGraph(attributePaths = {"items", "customer"})
    Optional<Order> findById(Long id);

    // DTO Projection
    @Query("SELECT new com.example.OrderSummary(o.id, o.status, c.name) " +
           "FROM Order o JOIN o.customer c WHERE o.id = :id")
    Optional<OrderSummary> findSummaryById(@Param("id") Long id);
}

N+1 Prevention Strategies

StrategyUse WhenExample
JOIN FETCHAlways need relationJOIN FETCH o.items
EntityGraphDynamic fetching@EntityGraph(attributePaths)
@BatchSizeCollection access@BatchSize(size = 20)
DTO ProjectionRead-only queriesnew OrderSummary(...)

Hibernate Configuration

spring:
  jpa:
    open-in-view: false  # Critical!
    properties:
      hibernate:
        jdbc.batch_size: 50
        order_inserts: true
        order_updates: true
        default_batch_fetch_size: 20
        generate_statistics: ${HIBERNATE_STATS:false}

  datasource:
    hikari:
      maximum-pool-size: 20
      minimum-idle: 5
      leak-detection-threshold: 60000

Troubleshooting

Common Issues

ProblemCauseSolution
N+1 queriesLazy in loopJOIN FETCH, EntityGraph
LazyInitExceptionSession closedDTO projection
Slow queriesMissing indexEXPLAIN ANALYZE
Connection leakNo @TransactionalAdd annotation

Debug Properties

spring.jpa.show-sql=true
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.orm.jdbc.bind=TRACE
hibernate.generate_statistics=true

Debug Checklist

□ Enable SQL logging
□ Check query count per request
□ Verify fetch strategies
□ Review @Transactional
□ Check connection pool

Usage

Skill("java-jpa-hibernate")

Related Skills

  • java-performance - Query optimization
  • java-spring-boot - Spring Data

Related skills

How it compares

Choose java-jpa-hibernate for Spring Boot ORM depth; use raw SQL migration skills when schema versioning not entity mapping is the blocker.

FAQ

Which databases does java-jpa-hibernate support?

java-jpa-hibernate supports PostgreSQL, MySQL, Oracle, and H2 through parameterized focus on entities, queries, transactions, or caching in Spring Boot JPA/Hibernate apps.

What version is java-jpa-hibernate?

java-jpa-hibernate is version 3.0.0 with SASMP 1.3.0, bonded as PRIMARY_BOND to the 06-java-persistence agent for production persistence guidance.

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.