← ClaudeAtlas

entitylisted

Scaffold a new JPA entity following project conventions (schema-qualified @Table, composite @EmbeddedId keys, Persistable for JDBC upsert, read-only mirror entities). Use when adding a persisted entity.
ch4570/vulpora · ★ 1 · AI & Automation · score 67
Install: claude install-skill ch4570/vulpora
# entity — JPA entity scaffold Generate a JPA entity that matches the project's domain conventions. The generator's job is to bake the hard constraints in so a new entity cannot drift from the house style. > **Authority**: the project conventions (e.g. `AGENTS.md`) are binding. This skill **scaffolds**; review > with a Kotlin/Spring reviewer, tests with your test-authoring flow. ## reference 원칙: `reference/principles.md`, 지식: `reference/kb/INDEX.md`. ## Where it goes - The domain module (`<domain-module>`), package `<base-package>.<domain>.entity` (e.g. `com.example.order.entity`). - Follow the module's API visibility convention (e.g. no `public` keyword when the module runs `explicitApi = Disabled`). - Class name `<Name>Entity`. Composite-key id class `<Name>EntityId`. ## Skeleton ```kotlin @Entity @Table(schema = "<schema>", name = "<table>") class OrderEntity( @Id @Column(name = "order_id", length = 126, nullable = false, updatable = false) val id: String, @Enumerated(EnumType.STRING) @Column(name = "status", length = 50, nullable = false) val status: OrderStatus, @Column(name = "created_at", nullable = false, updatable = false) val createdAt: Instant = Instant.now(), @Column(name = "updated_at", nullable = false) val updatedAt: Instant = Instant.now(), ) ``` ## Rules (MUST) - `@Table` MUST set **both** `schema` and `name`. Enums persist via `@Enumerated(EnumType.STRING)`. - Fields are `val`; only auditing fields are `var`. D