What problem does it solve? Kotlin's data class breaks Hibernate's identity semantics, causing corrupted Set/Map membership, detached duplicates, and LazyInitializationException. This Skill provides correct patterns for designing JPA entities in Kotlin so persistence code behaves predictably under dirty tracking, proxying, and concurrent access. ## Core Features & Use Cases - Entity Design Rules: Enforces regular classes over data classes for entities, ID-based equals/hashCode, lazy-safe toString, and no-arg plugin verification. - Uniqueness & Idempotency: Combines database unique constraints with application-level guards for race-safe idempotent operations like reservations. - ORM Trap Diagnosis: Covers N+1 detection via actual query counts, fetch plans with @EntityGraph and JOIN FETCH, bidirectional association maintenance, and bulk update pitfalls. - Use Case: When reviewing a Spring Boot service that silently accumulates duplicate reservations, apply the database constraint plus repository lookup pattern to enforce idempotency at both layers. ## Quick Start Review my Kotlin Spring Data JPA entity classes and fix any data class usage, equality, or lazy loading issues.