githubEdit

databaseORM

The BoxLang ORM module allows your BoxLang application to integrate with the powerful Hibernate ORM

# For Operating Systems using our Quick Installer.
install-bx-module bx-orm

# Using CommandBox to install for web servers.
box install bx-orm

BoxLang ORM

The BoxLang ORM modulearrow-up-right allows your BoxLang application to integrate with the powerful Hibernate ORMarrow-up-right. With Hibernate, you can interact with your database records in an object oriented fashion, using a BoxLang class to denote each record and simple getters and setters for each field value:

@entityName( "Auto" ) 
@persistent
class {

  property name="id" type="string" fieldtype="id" ormtype="string";
  property name="make" type="string";
  property name="model" type="string";

  function onPreInsert(){
      log.info( "Inserting new Auto: #getMake()# #getModel()#" );
 }
}

BoxLang ORM also enables transactional persistence, where an error during a save will roll back the entire transaction to prevent leaving the database in a broken state:

Hibernate Version Support

bx-orm bundles Hibernate 5.6.15.FINAL.

Features In A Nutshell

  • Add Object Relational Mapping to any boxlang app with Hibernate ORM

  • Use native built-in-functions (BIFs) to update and persist entities to the database (entityNew(), entitySave(), ormFlush(), etc.)

  • Supports 80+ database dialects, from SQLServer2005 to MySQL8 and PostgreSQL

  • Generate your mapping XML once and never again with the autoGenMap=false ORM configuration setting

  • React to entity changes with pre and post event listeners such as onPreInsert(), onPreUpdate() and onPreDelete()

  • Over 20 native BIFs:

    • EntityDelete()

    • EntityLoad()

    • EntityLoadByExample()

    • EntityLoadByPK()

    • EntityMerge()

    • EntityNameArray()

    • EntityNameList()

    • EntityNew()

    • EntityReload()

    • EntitySave()

    • EntityToQuery()

    • ORMClearSession()

    • ORMCloseAllSessions()

    • ORMEvictCollection()

    • ORMEvictEntity()

    • ORMEvictQueries()

    • ORMExecuteQuery()

    • ORMFlush()

    • ORMGetSession()

    • ORMGetSessionFactory()

    • ORMReload()

Documentation

This module has quite an extensive documentation, so check out our book on it: https://bxorm.ortusbooks.com/arrow-up-right

GitHub Repository and Reporting Issues

Visit the GitHub repositoryarrow-up-right for the latest source code and our ORM docsarrow-up-right for docs and release notes. You can also file a bug report or improvement suggestion via Jiraarrow-up-right.

Last updated

Was this helpful?