Blog

ColdBox 4.0 ORM Services

Brad Wood February 12, 2015

Spread the word

Brad Wood

February 12, 2015

Spread the word


Share your thoughts

ColdBox's ORM services have always been a very compelling part of the framework for those using ORM in their applications.  The provide you with an automatic, extendable service layer for an ORM entity complete with common methods, pagination and really sweet syntactical sugar such as dynamic finders:

user = userService.findByLastName("Majano");
users = userService.findAllByLastLoginBetween( "01/01/2014", "01/01/2015" );
count = userService.countByLastLoginGreaterThan( "01/01/2013" );

All that sweetness is still there, but part of the cborm module so it's truly optional for those who want it.  Install cborm with CommandBox with this command while sitting in your web root:

CommandBox> install cborm

This module also replaces the old ORMService plugin as well.  It contains all the same services, but the component paths have been changed.  Here's a quick reference.  Do an extended find on your code base and replace any instances of the old component paths with the new. 

Old component path New component path
coldbox.system.orm.hibernate.VirtualEntityService cborm.models.VirtualEntityService
coldbox.system.orm.hibernate.ActiveEntity cborm.models.ActiveEntity
coldbox.system.orm.hibernate.BaseORMService cborm.models.BaseORMService

The cborm mapping will home in on the root of your ORM module regardless of where it's installed.  Unfortunately, due to the way that ORM is loaded by ColdFusion, if you are using the ORM EventHandler or ActiveEntity or any ColdBox Proxies that require ORM, you must create an Application Mapping in the Application.cfc like this:

this.mappings[ "/cborm" ] = COLDBOX_APP_ROOT_PATH & "modules/cborm";

Adjust the path as necessary to match your installation.

The same WireBox DSL namespaces are still available to you for injecting entity services.  The ORM Module will register these when it is activated.

// Inject a global ORM service
property name="genericEntityservice" inject="entityservice";

// Inject a Virtual entity service according to entityName
property name="foobarService" inject="entityservice:foobar";

 

Add Your Comment

Recent Entries

Into the Box 2024 Last Early Bird Days!

Into the Box 2024 Last Early Bird Days!

Time is ticking, with less than 60 days remaining until the excitement of Into the Box 2024 unfolds! Don't let this golden opportunity slip away; our exclusive Early Bird Pricing is here for a limited time only, available until March 31st. Why wait? Secure your seat now and take advantage of this steal!

Maria Jose Herrera
Maria Jose Herrera
March 20, 2024
Ortus February Newsletter 2024

Ortus February Newsletter 2024

Welcome to Ortus Solutions’ monthly roundup, where we're thrilled to showcase cutting-edge advancements, product updates, and exciting events! Join us as we delve into the latest innovations shaping the future of technology.

Maria Jose Herrera
Maria Jose Herrera
March 06, 2024
Unveiling the Future of CFML Development - 3rd Round of Sessions

Unveiling the Future of CFML Development - 3rd Round of Sessions

Welcome back to our journey into the future of CFML development! As excitement continues to build for Into the Box 2024, we're thrilled to bring you the latest updates on what promises to be a transformative event. Continuing our blog post series, let's delve deeper into the third wave of session releases and discover the key surprises awaiting attendees. Learn More

Maria Jose Herrera
Maria Jose Herrera
March 01, 2024