FORGEBOX Enterprise 🚀 - Take your ColdFusion (CFML) Development to Modern Times! Learn More...
Ortus ORM Extensionv6.5.2 Lucee Extensions
Lucee 220.127.116.11 or above.
You can install this extension into a preconfigured Lucee server via Commandbox:
box install D062D72F-F8A2-46F0-8CBC91325B2F067B
This will not work unless
box server start has been run first to set up the Lucee engine directories. Use
--dryRun to set up the Lucee server without actually starting the server process. This will prevent ORM from attempting to initialize before the extension is installed:
box> server start --dryRun
box> install D062D72F-F8A2-46F0-8CBC91325B2F067B
box> server start
"I am the way, and the truth, and the life; no one comes to the Father, but by me (JESUS)" Jn 14:1-12
All notable changes to this project will be documented in this file.
NULL when an ORM type is declared. Originally reported against
6.4.0, resolved in
6.5.0, then regressed in
6.5.1. - Resolves OOE-26.
NULL when no property type is declared. - Resolves OOE-25, introduced in 6.5.0.
unsavedValue persistent property attribute.
text. This resolves issues where a
preUpdate() throws a "can't cast  to date value" when processing event listeners if a date field (for example) is unpopulated or has an empty
Add the entity name to the exception message when attempting to persist changes from
preUpdate event listeners. The updated exception message is now:
Error populating event state for persistance in [<entity name>] entity pre-event listener method: <error message from Hibernate>
Bump Lucee build dependency to
18.104.22.168 to avoid vulnerable dependencies in the build process.
ORMQueryExecute() alias for the
ORMExecuteQuery. This new alias behaves identically to the
ORMExecuteQuery() method, but is named consistently with the
entityLoad() - LDEV-4285
entityLoadByPK() - LDEV-4461
While not technically a change in ORM functionality, the
useDBforMapping implementation has been greatly improved "under the hood", with tests to boot.
Fixed pre-event listeners to include parent component properties when checking for entity mutations to persist back to the event entity state. This resolves issues with changes made in
preUpdate() not persisting if the changes are made on a persistent property from a parent component. Resolves OOE-14.
Refactored nullability checks to occur after pre-event listener methods fire. Resolves OOE-12
Added context to the error message in
CFCGetter, which handles retrieving entity values from Hibernate code. This improves odd error messages in some edge cases with the Hibernate tuplizer.
.lex extension file size by over 6 MB. 🎉
Note: While it is not 100% clear, some of these CVEs may have been false positives.
This brings the Hibernate dependencies up to date (released Feb. 2023), and should not change any CFML-facing features for most users. (See CLOB columns in Postgres81)
See the migration guides for more info:
Due to the Hibernate 5.6 upgrade, if you are using the
PostgreSQL81 dialect and have
CLOB columns in your database, it is recommended you migrate existing text columns for LOBs to
ehcache.xml for EHCache changed to include
diskSpoolBufferSizeMB="30MB" properties to match Adobe ColdFusion 9's default
ehCache.xml config. Both these values represent default settings in EHCache itself.
"timezone"-typed column values. Previously, fields defined with
ormtype="timezone" would neither use the
default value nor allow new values to be set. OOE-10
preUpdate() listeners for properties with no
default defined. OOE-9
getDialectNames() method from the Dialect class. This method was unused (to my knowledge) and unnecessary.
5.40.80 to remove vulnerability notices on org.apache.tika:tika-core and commons-net:commons-net. These vulnerabilities are only theoretical, since Lucee is a
provided dependency and not bundled with the extension.
The extension will now throw an error if you try to configure an unsupported cache provider like
"swarmcache", etc. Previously, the extension would silently switch to ehcache if any cache provider besides EHCache was configured.
This version re-enables Hibernate logging via SLF4j and LogBack. Hibernate root and cache loggers are defaulted to
ERROR level, while SQL logging is set to
this.ormSettings.logSQL is enabled. (Set to
The extension GitHub Release page now generates a dependency CVE report via Jeremy Long's OWASP dependency-check maven plugin. Any known CVEs contained in dependencies ( excluding
provided-scoped dependencies) will be noted in each release's CVE report artifact.
We re-architected the build to inline most dependencies. I.e. we no longer copy in extension dependencies as (custom-built) OSGI bundles, but instead as compiled classes.
"node" attribute is deprecated in Hibernate 5.x, and is no longer generated on HBM/XML mapping files to avoid Hibernate warning that "Use of DOM4J entity-mode is considered deprecated".
.fld definition file for all built-ins was missed during the conversion to a Maven build. (Since v22.214.171.124). This caused the
entity*() built-in method calls to be picked up by Lucee core before being routed to this extension. No known errors resulted from this mistake, but we feel embarrassed anyway. 😅
We now set the JAXB
ContextFactory system property based on the JRE version. If less than JRE 11, we set
javax.xml.bind.context.factory=com.sun.xml.bind.v2.ContextFactory. If JRE 11 or greater, we set
This prevents the following warning from being logged on each ORM method call:
WARNING: Using non-standard property: javax.xml.bind.context.factory. Property javax.xml.bind.JAXBContextFactory should be used instead.
javax.xml.bind.context.factory=com.sun.xml.bind.v2.ContextFactory System property to ensure the JAXB API can find its implementation in CommandBox environments. This may trigger a log message, but shouldn't cause any concern. Vanilla Tomcat installations may need to overwrite or clear this property. LDEV-4276
onPreUpdate() do not persist OOE-2
onPreInsert, for example) is fired (014814263b5d31b8bac4c17479c2ca731ceb4e7c, OOE-1)
"unique" argument if
options struct is passed
autoGenMap=false - LDEV-3525