Quick ORM
3.0.0
3.0.0
  • Introduction
  • Why Quick?
  • What's New?
  • Upgrade Guide
  • Contributing
  • Guide
    • Getting Started
      • Defining An Entity
      • Retrieving Entities
      • Creating New Entities
      • Updating Existing Entities
      • Deleting Entities
      • Query Scopes and Subselects
    • Relationships
      • Relationship Types
        • hasOne
        • hasMany
        • belongsTo
        • belongsToMany
        • hasManyThrough
        • hasOneThrough
        • belongsToThrough
        • polymorphicBelongsTo
        • polymorphicHasMany
      • Retrieving Relationships
      • Querying Relationships
      • Ordering By Relationships
      • Eager Loading
    • CBORM Compatibility Shim
    • Collections
    • Custom Getters & Setters
    • Serialization
    • Interception Points
    • Debugging
    • FAQ
  • Cookbook
    • Introduction
  • External Links
    • API Docs
    • Source Code
    • Issue Tracker
Powered by GitBook
On this page
  • 3.0.4
  • 3.0.3
  • 3.0.2
  • 3.0.1
  • 3.0.0
  • 2.5.0
  • 2.4.0
  • 2.3.0
  • 2.2.0
  • 2.1.0

Was this helpful?

Edit on Git
Export as PDF

What's New?

3.0.4

  • Compatibility updates for ColdBox 6

3.0.3

  • Optimize cast caching

3.0.2

  • Apply custom sqltypes during eager loading.

3.0.1

  • Account for null values in fill.

  • Swap structAppend order for a Lucee bug in mementifier integration.

3.0.0

BREAKING CHANGES

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.

  • The defaultGrammar mapping needs to be the full WireBox mapping, including the @qb, if needed.

    • For instance, MSSQLGrammar would become MSSQLGrammar@qb.

    • 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.

  • Attributes using casts="boolean" need to be updated to casts="BooleanCast@quick".

  • 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.

Other Changes

  • 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 belongsToThrough relationship.

  • Add a HasOneThrough relationship.

  • Custom Casts - using custom components to represent one or more attributes.

  • Ordering by relationship attributes.

  • addSubselect improvements.

  • Add a new QuickBuilder to better handle interop with qb.

  • Add exists and existsOrFail methods.

  • Allow custom error messages for orFail methods.

  • Ensure loadRelationship doesn't reload existing relationships.

  • Add multiple retrieve or new/create methods - firstWhere, firstOrNew, firstOrCreate, findOrNew, and findOrCreate.

  • Add paginate to Quick.

  • Add is and isNot to compare entities.

  • Allow hydrating entities from serialized data.

  • Allow returning default entities for null relations on HasOne, BelongsTo, HasOneThrough, and BelongsToThrough relationships.

  • Query relations using has, doesntHave, whereHas, and whereDoesntHave.

  • Split reset into reset and resetToNew methods.

  • Store the original attributes for later resetting.

  • Use parameterLimits to eager load.

  • Use a new entity each time on BaseService.

  • Apply sql types for columns to wheres.

  • Apply global scopes more consistently

  • Correctly ignore key column when updating.

  • Fix 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 onMissingMethod fails.

  • Only retrieve columns for defined attributes.

  • Cache entity metadata in CacheBox.

  • Use attribute hash for checking isDirty.

2.5.0

  • Define custom collections per entity.

2.4.0

  • 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.

2.3.0

  • Option to ignore non-existent attributes

2.2.0

  • Relationship Fetch Methods (first and find methods)

2.1.0

  • Subselect Helper

  • Global Scopes

  • saveMany

  • Mapping foreign keys for relationships is now optional

  • Either entities or primary key values can be passed to relationship persistance methods

  • Relationships can also be saved by calling "set" & relationshipName

  • Virtual Inheritance works on ColdBox 5.2+

PreviousWhy Quick?NextUpgrade Guide

Last updated 5 years ago

Was this helpful?