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