Skip to content
On this page

Java Records

java

Generate Java record classes from SQL schema

Example Output ​

Generated from the pet-store sample schema:

Adoption.java ​

java
import java.math.BigDecimal;
import java.time.LocalDateTime;

public record Adoption(
    int id,
    int petId,
    int ownerId,
    LocalDateTime adoptedAt,
    BigDecimal adoptionFee
) {}

AdoptionsAuditLog.java ​

java
import java.time.OffsetDateTime;

public record AdoptionsAuditLog(
    long id,
    String tableName,
    String operation,
    String oldData,
    String newData,
    OffsetDateTime changedAt
) {}

Category.java ​

java
public record Category(
    int id,
    String name,
    String description
) {}

LegacyInventory.java ​

java
public record LegacyInventory(
    int id,
    String itemName,
    String oldSku,
    Integer quantity
) {}

Location.java ​

java
public record Location(
    int id,
    String name,
    String address,
    String city,
    String zip
) {}

MedicalRecord.java ​

java
import java.time.LocalDate;

public record MedicalRecord(
    int id,
    int petId,
    LocalDate visitDate,
    String diagnosis,
    String treatment,
    String vetName
) {}

Owner.java ​

java
import java.time.LocalDateTime;

public record Owner(
    int id,
    String name,
    String email,
    String phone,
    LocalDateTime createdAt
) {}

Pet.java ​

java
import java.math.BigDecimal;
import java.time.LocalDateTime;

public record Pet(
    int id,
    Integer categoryId,
    String name,
    String sku,
    BigDecimal price,
    String internalNotes,
    String status,
    LocalDateTime createdAt
) {}

Review.java ​

java
import java.time.LocalDateTime;

public record Review(
    int id,
    int petId,
    int ownerId,
    int rating,
    String body,
    Integer locationId,
    LocalDateTime createdAt
) {}

StaffAuditLog.java ​

java
import java.time.OffsetDateTime;

public record StaffAuditLog(
    long id,
    String tableName,
    String operation,
    String oldData,
    String newData,
    OffsetDateTime changedAt
) {}

Usage ​

Add to your sqldoc.config.ts:

typescript
export default {
  dialect: 'postgres',
  schema: ['./schema.sql'],
  codegen: [
    {
      template: 'java-records',
      output: './generated/Models.java',
    },
  ],
}

Then run:

bash
sqldoc codegen