simplePaginate pagination method for quicker performance when total records or total pages are not needed or too slow.
Configure columns are no longer cleared when setting up a
hasOne relationships (used in
Ignore orders when retrieving a relationship count.
Preserve casted value after saving an entity.
Look up returning values by column name not by alias in the
Skip eager loading database call when no keys are found.
CONCAT when needed in
WHERE EXISTS over
DISTINCT when fetching relationships.
DISTINCT restricts some of the queries that can be run.
Dynamically add relationship counts to a parent entity without loading all of the relationship.
Give a helpful error message when trying to set relationship values before saving an entity, where applicable.
Correct jQuery link in test runner.
Allow expressions in basic where clauses.
delete naming collision.
Add an alias to
with to QuickBuilder.
Fix a stack overflow on nested relationship checks.
Configured tables (
.from) are now used for qualifying columns.
Remove unnecessary nesting in compare queries.
Fix querying relationship methods when using "OR" combinators.
Add support for JSON casting using a new
Compatibility updates for ColdBox 6
Optimize cast caching
Account for null values in
Swap structAppend order for a Lucee bug in mementifier integration.
Please see the Upgrade Guide for more information on these changes.
Drop support for Lucee 4.5 and Adobe ColdFusion 11.
Virtual Inheritance (using a
quick annotation instead of extending
quick.models.BaseEntity) has been removed. It was hardly used, and removing it allows us to simplify some of the code paths.
accessors="true" is now required on every entity. This is similar to above where requiring it allows us to simplify the codebase immensely. A helpful error message will be thrown if
accessors="true" is not present on your entity.
defaultGrammar mapping needs to be the full WireBox mapping, including the
@qb, if needed.
MSSQLGrammar would become
This will allow for other grammars to be more easily contributed via third party modules.
HasManyThrough relationships now only accept a
relationships parameter of relationship methods to walk to get to the intended entity.
casts="boolean" need to be updated to
Some method and parameter names have been changed to support composite keys. The majority of changes will only affect you if you have extended base Quick components. The full list can be found in the Upgrade Guide.
Bundle Mementifier for memento transformations.
Use asMemento to automatically convert queries to mementos.
Automatically-generated API docs.
Add error message for defaulting key values.
Update to qb 7.0.0.
Add a HasOneThrough relationship.
Custom Casts - using custom components to represent one or more attributes.
Add a new QuickBuilder to better handle interop with qb.
loadRelationship doesn't reload existing relationships.
paginate to Quick.
isNot to compare entities.
Allow hydrating entities from serialized data.
Store the original attributes for later resetting.
parameterLimits to eager load.
Use a new entity each time on BaseService.
Apply sql types for columns to
Apply global scopes more consistently
Correctly ignore key column when updating.
hasRelationship method to only return true for exact matches.
Better handling of constrained relationships when eager loading.
Convert aliases when qualifying columns.
Add a better error message if
Only retrieve columns for defined attributes.
Cache entity metadata in CacheBox.
Use attribute hash for checking
Define custom collections per entity.
Apply custom setters when hydrating from the database. (Reverted in
2.5.3 for unintended consequences with things like password hashing.)
Query scopes can return any value. This allows you to use scopes to perform query functions and return values. (If you do not want to return a custom value, return the
QueryBuilder instance or nothing.)
Improve error messages for not loaded entities.
Return the correct memento with accessors on.
Relationship Fetch Methods (