All notable changes to this project will be documented in this file.
- PostgreSQL dialect — full DDL support via
-d postgresql(CLI),dialect.set("postgresql")(Gradle plugin), orPostgreSqlDialect(programmatic)- Double-quoted identifiers
BIGSERIAL/SERIAL/SMALLSERIALfor auto-increment columns- Native
SEQUENCEsupport (@GeneratedValue(strategy = SEQUENCE)) - Type mappings:
BOOLEAN,uuid,BYTEA,DOUBLE PRECISION,REAL,NUMERIC(p,s),TIMESTAMP WITH TIME ZONE,TEXT(unknown-type fallback) - Primary key constraint drop uses
{table}_pkeynaming convention
- FK dependency-based table ordering (
DependencyResolver) —CREATE TABLEandDROP TABLEstatements are now automatically ordered using a topological sort over foreign key relationships; no manual ordering required regardless of entity declaration order- Supported topologies: linear chains, diamond shapes, join tables, multiple independent trees
noConstraint = truerelationships are excluded from the dependency graph- Circular FK detection: logs a warning to
stderrand falls back to the original order safely
- Renamed table handling — tables detected as renamed are now generated as
DROP TABLE+CREATE TABLEinstead ofRENAME TABLE, consistent with the intended production behaviour
toLowerCase()inDependencyResolvernow usesLocale.ROOTto prevent incorrect FK matching under locale-sensitive JVM environments (e.g. Turkish localeI→ı)- BFS queue initialisation in
DependencyResolvernow usesLinkedHashMapinsertion order for deterministic output when no FK dependency exists between independent tables
naming.strategycan now be configured viajinx.yaml(previously only supported through Gradle DSL or-Acompiler options)
- All annotation processor option parsing (
maxLength,strategy) is now consolidated inJpaSqlGeneratorProcessor.init().ProcessingContextno longer reads fromjinx.yamldirectly.
- Fixed SQL generation order bug on column rename: indexes referencing the renamed column were generated before the column existed
- Resolved
ModifyContributordependency ordering issue in MySQL migrations by splitting modify operations into separate Drop and Add contributors
- Index, constraint, and foreign key modify operations now follow explicit Drop → Column change → Add ordering
- Fixed duplicate FK generation in JOINED inheritance hierarchies
- Fixed FK mismatch in multi-level JOINED inheritance
- Fixed
AttributeDescriptorFactoryincorrectly recursing into@Entitysuperclasses - Fixed
TEXTtype being generated forAttributeConverteroutput types — now correctly resolves the converter's DB-side type (YinAttributeConverter<X, Y>) - Fixed deferred PK validation timing for JOINED hierarchies and
@ElementCollection
- Fixed constraint and index position bug in DDL generation
- Fixed duplicate column generation for boolean fields
- Deprecated
IndexModifyContributor,ConstraintModifyContributor,RelationshipModifyContributor
NamingStrategySPI —SNAKE_CASEandNO_OPstrategies included
- Deferred FK processing now uses dynamic retry count with progress detection to handle complex circular references
- FK post-create phase separation for circular reference support
OneToOnemissing UNIQUE constraint on inverse sideToOneFK missing when processed before referenced entity
- MySQL
ENUMliteral generation forEnumType.STRING - Primitive and enum field SQL type mapping errors