1.x
Version 1.x release notes for the BoxLang ORM Module
1.6.5 - 2026-05-26
⭐ Added
New AI skills under
.agents/skillsand custom skills under.agents/skills-customNew Custom Skills for AI agents under
.agents/skills-customfor ORM configuration and troubleshooting.Consolidation of AI instruction files to
AGENTS.mdwith a pointer fromCLAUDE.md
⚡ Updates
Updated readme with AI skills information and setup.
Dependabot quarterly
Updated BoxLang testing to v1.13.0
🐛 Fixed
Fix
ClassCastExceptionwhen saving entities withormtype="float"properties containing Integer values (e.g.,default="0"). Added missingFloatConverterand registered it inHibernateXMLWriter.
See v1.6.5 commit history on github
1.6.4 - 2026-05-13
⭐ Added
Added debug logging for ORM startup metrics, including entity metadata parsing and Hibernate SessionFactory build times.
🐛 Fixed
BLMODULES-191 - Defensive code against disabled ORM logging causing boxlang cli startup failure.
BLMODULES-198 - Fix
missingRowIgnoredannotation not being applied to collection relationships.BLMODULES-204 - Ensure transaction open only flushes session if
autoManageSessionis enabled.
See v1.6.4 commit history on github
1.6.3 - 2026-04-29
🐛 Fixed
BLMODULES-190 - Fix error on
one-to-manyassociations wheninversejoincolumnattribute is specified
See v1.6.3 commit history on github
1.6.2 - 2026-04-09
🐛 Fixed
BLMODULES-173 - Fixed issue with mutated entity metadata leaking across BoxLang applications.
See v1.6.2 commit history on github
1.6.1 - 2026-04-09
🐛 Fixed
Fixed issue with
scaleannotation not properly cast to a string inClassicPropertyMeta.
See v1.6.1 commit history on github
1.6.0 - 2026-04-02
⭐ Added
Adds support for composite IDs.
🐛 Fixed
Fixes an issue of lost mappings on entity discoveries, due to wrong parent context being sent.
See v1.6.0 commit history on github
1.5.0 - 2026-03-27
🐛 Fixed
Memory leak on ORM reload — all open Hibernate sessions are now closed before tearing down
SessionFactoryinstances, preventing stale session/factory references from blocking garbage collection after everyORMReload().Memory leak on session factory build failure —
SessionFactoryBuildernow wipes theBootstrapServiceRegistrywhenbuildSessionFactory()throws, so the registry is not orphaned on the failure path.Stale ORM context after reload — the old
ORMContextis removed from the JDBC context before rebuilding, and a fresh one is eagerly installed after the new app is live, eliminating null-window races for concurrent callers.Null context in threaded scenarios —
EntityTuplizerand related components now obtain the box context safely when executing in a non-request thread.Null pointer when the method does not exist on a tuplizer call — added an existence check before invoking optional methods.
Improved exception logging to include full stack traces throughout the ORM lifecycle.
Fixed issue with
dbdefaultannotation not properly cast to a string inClassicPropertyMeta.
⭐ Added
Use a deterministic directory name based on config content rather than a hashcode of the config file path for generated mapping files, ensuring consistent mapping file usage across different environments and absolute paths.
⚡ Changed
Hot-path interception performance — all
interceptorService.announce()calls on hot code paths (entity instantiation, config load) are now guarded withhasState()checks and use lazyStructsuppliers, avoiding unnecessary struct allocation when no listeners are registered.ORMConfignow receives and threads theIBoxContextthroughprocess()andgetAppDefaultDatasource()so the correct application datasource is resolved in all execution contexts.ORMService.reloadApp()now performs an atomic put-and-swap of the new/oldORMAppin the registry to minimize the disruption window for requests running concurrently with a reload.
See v1.5.0 commit history on github
1.4.1 - 2026-03-23
⛓️💥 Changed
This version requires Boxlang Runtime
v1.11.xand above
🗑 Deprecated
The
autoGenMapconfiguration setting is now deprecated in favor ofgenerateMappings. Same function, different name. See BLMODULES-119 for details.
⭐ Added
BLMODULES-119 - Add support for
generateMappings=false(aliased asautoGenMapfor backwards compatibility) to disable automatic mapping generation and require manual mapping files.
🐛 Fixed
BLMODULES-136 - Fix issue with naming strategy being double-applied on table and column identifiers.
BLMODULES-146 - Fix issue where rollbacks, commits, etc. inside a transaction block were not properly scoped to the transaction block and could affect the entire session.
See v1.4.1 commit history on github
1.4.0 - 2026-02-06
⛓️💥 Changed
This version is now only compatible with Boxlang Runtime
v1.10.xand above
🐛 Fixed
BLMODULES-120 - Add new settings for
lazyanddefaultBatchSizeto provide compat implementationsBLMODULES-130 - Fix collection handling for java List objects - which hibernate returns
Transaction management udpates to deal with complex nested transactions
Ensure manual flush mode when
autoManageSessionisfalseAdd savepoint interception for nested transactions and flush
See v1.4.0 commit history on github
1.3.0 - 2026-01-07
🐛 Fixed
BLMODULES-110 - Implement
EntityTuplizer.getEntityMode()for relationship gettersBLMODULES-113 - Drop unnecessary logging on request end for non-ORM requests
BLMODULES-117 - Resolve transaction interception error when no ORM App is present
BL-2039 - Fix "Datasource with name ... not found" in empty transactions on subsequent requests
⭐ Added
BLMODULES-118 - Enable
table,schema, andcatalogannotations for joined subclasses.BL-2052 - Move ORM context removal to shutdown listener for improved datasource cleanup on request end.
See v1.3.0 commit history on github
1.2.0 - 2025-12-05
🐛 Fixed
BLMODULES-102 - Fix ORM usage in threads causing ConcurrentModificationException
See v1.2.0 commit history on github
1.2.0 - 2025-12-05
🐛 Fixed
BLMODULES-102 - Fix ORM usage in threads causing ConcurrentModificationException
See v1.2.0 commit history on github
1.1.2 - 2025-09-06
🐛Fixed
BLMODULES-84 - Resolved incorrect location of many-to-one on discriminated child
BLMODULES-85 - Resolved an issue where transaction interception points would throw an error on non-orm-enabled applications
BLMODULES-88 - Resolved an issue where entity modifications during orm events were not persisting correctly to the database
BLMODULES-90 - Resolved an issue where numerics were not being coerced correctly to strings on applicable properties when used in ORMExecuteQuery
See v1.1.2 commit history on github
1.1.1 - 2025-08-27
🐛 Fixed
Changed Array.fromString usage to use ListUtil as the method was removed from the Array class in v1.5.0 of the core
BLMODULES-83 - Resolved inheritiance and
mappedSuperClassissues with 3+ levelsBLMODULES-80 - Fix for class relationships not being found due to core compiler casing changes
See v1.1.1 commit history on github.
1.1.0 - 2025-08-04
⛓️💥 Changed
This new version only works with the fixes on BoxLang v1.4.0
🐛 Fixed
Updates to Request Context based on BoxLang v1.4.0 updates
Lots of dependency updates
See v1.1.0 commit history on github.
1.0.11 - 2025-06-10
🐛 Fixed
Fixed issue with default cache not being created when cache provider was empty - Resolves BLMODULES-53
Fix error starting up on non-ORM apps - Resolves BLMODULES-49
Add support for
tinyintandtinyintegerORM types - Resolves BLMODULES-59Skip type conversion on version properties - Resolves BLMODULES-45
Drop ormApp instantiation in baseORMBIF - Fixes BLMODULES-54
Improve default datasource look up and throw error if empty - See BLMODULES-56
See v1.0.11 commit history on github.
1.0.10 - 2025-05-03
🐛 Fixed
Throw or log an error when class annotation on association is an empty string - Resolves BLMODULES-50
Fix support for
dataTypeannotation on version properties - Resolves BLMODULES-51
⭐ Added
Implement 'index' annotation - Resolves BLMODULES-47
Implement multi-column support in
columnandfkcolumn- Resolves BLMODULES-48Implement cache support at the property level - Resolves BLMODULES-52
See v1.0.10 commit history on github.
1.0.9 - 2025-04-29
🐛 Fixed
Implement
elementType,elementColumnannotations - Resolves BLMODULES-46Fixes for map collection when
structkeytypeorstructkeycolumnare ignored - Resolves BLMODULES-45Skip usage of
AttributeConverteron identifier properties - Resolves BLMODULES-44
See v1.0.9 commit history on github.
1.0.8 - 2025-04-25
⭐ Added
Set hibernate version in build so
ORMGetHibernateVersion()stays accurate - See a8c7c16
🐛 Fixed
Foreign key must have same number of columns as the referenced primary key - Resolves BLMODULES-41
Missing FKColumn on To-Many Relationship Should Check the Inverse Relationship for Column data - Resolves BLMODULES-42
XMLWriter - Skip id,composite-id XML rendering on subclasses - Resolves BLMODULES-38
XML Writer - Skip generator on composite keys - Resolves BLMODULES-40
XMLWriter - Don't set insert or update on one-to-one elements - Resolves BLMODULES-39
Fix support for 'params' attribute string notation - See BLMODULES-40
See v1.0.8 commit history on github.
1.0.7 - 2025-04-14
🐛 Fixed
Fix string casting error on
lazyproperty annotation
See v1.0.7 commit history on github.
1.0.6 - 2025-04-14
🐛 Fixed
Fixed support for custom naming strategies - See 8e68206
Fixed "smart" naming strategy when entity name begins with an uppercase character - See b47b512
Move compat configuration to bx-compat-cfml - See c8b7173
Fixed the two types of discriminator generation order - See ea62a62
fix bag element being appended to wrong node on subclasses - See f82b2ac
change to use caster so that lazy=true does not error - See 0096387
⭐ Added
Add missing
dateproperty type - See c6ec8a2Add alternate spellings for big decimal and big integer - See 5e199f9
Add flush after commit on transaction end - See e2df378
See v1.0.6 commit history on github.
1.0.5 - 2025-04-07
🐛 Fixed
Removed debugging code
See v1.0.5 commit history on github.
1.0.4 - 2025-04-06
🐛 Fixed
Metadata parsing throws error on empty class despite
skipCFCWithErrorsetting - Resolves BLMODULES-37
See v1.0.4 commit history on github.
1.0.3 - 2025-04-06
🐛 Fixed
EntityLoad returning incorrect results with criteria struct filter on parent properties - Resolves BLMODULES-36
Hibernate Criteria Querys using
getare returning proxies instead of the entity - Resolves BLMODULES-35ensure proxies in session are expanded when a load is requested - See 5b07e2c
Error on first ORM request after Application Timeout - Resolves BLMODULES-30
BoxProxy Struct Implementation causes validation exceptions - Resolves BLMODULES-33
See v1.0.3 commit history on github.
1.0.2 - 2025-04-04
No significant changes.
See v1.0.2 commit history on github.
1.0.1 - 2025-04-04
⭐ Added
Allow options as third arg to ORMExecuteQuery - See b5efc84
Add handling for not null on to-one relationship - See 6792fb0
🐛 Fixed
Attempt casting
uniqueOrOrderto string in EntityLoad BIF - See 98f6734Ignore null
uniqueOrOrderargument in EntityLoad BIF - See 394d9baFix chicken/egg issues with app startup by lazy-initializing the EventHandler - See 699f15b
WrongClassException when re-querying for the same object in a session - Resolves BLMODULES-12
Disable
not-nullannotation usage on one-to-one relationships - See c512848fix explicit nulls on setters - See 819fffb
Auto-generated
hasmethods are overriding declared methods in ORM entities - Resolves BLMODULES-31x-to-onegeneratedhasX()methods are not returning the correct values - Resolves BLMODULES-32
See v1.0.1 commit history on github.
1.0.0 - 2025-03-26
First iteration of this module
Last updated
Was this helpful?