description |
---|
The Ortus ORM Extension is a native Lucee Extension that allows your CFML application to integrate with the powerful Hibernate ORM |
The Ortus ORM Extension is a native Lucee Extension that allows your CFML application to integrate with the powerful Hibernate ORM. With Hibernate, you can interact with your database records in an object oriented fashion, using components to denote each record and simple getters and setters for each field value:
component entityName="Auto" persistent="true" {
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()#" );
}
}
The Ortus ORM extension 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:
transaction{
try{
entitySave(
entityNew( "Purchase", {
productID : "123-expensive-watch",
purchaseTime : now(),
customerID : customer.getId()
})
);
var cartProducts = entityLoad( "CartProduct", customer.getID() );
entityDelete( cartProducts );
} catch ( any e ){
// don't clear the user's cart if the purchase failed
transactionRollback();
rethrow;
}
}
- Lucee 5.3.9.73 and above
- Java 8, 11 or 17
The Ortus ORM Extension bundles Hibernate 5.6.15.FINAL
since extension version 6.2.0.
- https://hibernate.org/orm/releases/5.6/
- https://docs.jboss.org/hibernate/orm/5.6/userguide/html_single/Hibernate_User_Guide.html
- https://docs.jboss.org/hibernate/orm/5.6/javadocs/
Previous versions of the Ortus ORM Extension bundle Hibernate 5.4.29.FINAL
:
- https://hibernate.org/orm/releases/5.4/
- https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html
- https://docs.jboss.org/hibernate/orm/5.4/javadocs/
The Ortus ORM extension is an open source Lucee server extension with no license purchase necessary. If you are looking to further the development of this extension, consider sponsoring a feature or opening a support contract.
- Add Object Relational Mapping to any CFML app with Hibernate ORM
- Use native CFML methods to update and persist entities to the database (
entityNew()
,entitySave()
,ormFlush()
, etc.) - Supports 80+ database dialects, from
SQLServer2005
toMySQL8
andPostgreSQL
- 60% faster startup than the Lucee Hibernate extension
- 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()
andonPreDelete()
- Over 20 native CFML functions:
EntityDelete()
EntityLoad()
EntityLoadByExample()
EntityLoadByPK()
EntityMerge()
EntityNameArray()
EntityNameList()
EntityNew()
EntityReload()
EntitySave()
EntityToQuery()
ORMClearSession()
ORMCloseAllSessions()
ORMEvictCollection()
ORMEvictEntity()
ORMEvictQueries()
ORMExecuteQuery()
ORMFlush()
ORMGetSession()
ORMGetSessionFactory()
ORMReload()
See the extension changelog for a full list of enhancements and bug fixes.
Our expertise with Hibernate ORM and Lucee Server allows us to give back to the community, as well as offer premium support to enterprises looking for a level up in their Hibernate implementations. If you need performance optimization, session management or caching integrations, please contact us for support.
- Source Code: https://github.com/Ortus-Solutions/extension-hibernate
- Support Plans: https://www.ortussolutions.com/services/support
- Bug Tracker: https://ortussolutions.atlassian.net/browse/OOE