Hier noch ein Eintrag zu meinen Notizen aus der CF9 Session von San Francisco.
ColdFusion 9 (Centauer) und ColdFusion Builder (Bolt) werden Tools und Code für Object Relational Mapping (ORM) dabei haben. Adobe setzt dabei auf Hibernate, wobei die Verwendung mit ColdFusion sehr einfach sein wird aber auch den direkten Zugriff auf Hibernate ist möglich.
Das cfproperty erhält endlich Funktion, wobei dadurch das Mapping zur DB gemacht wird und für jedes Property automatisch eine Get und Set Method vorhanden ist. Diese lassen sich jedoch bei bedarf überschreiben. ORM Sessions werden bei Bedarf automatisch erstellt und durch ColdFusion verwaltet.
Hibernate wird im Application.cfc durch this.OrmEnabled=true aktiviert und mittels this.datasource und this.OrmSetting entsprechend konfiguriert. Im OrmSetting wird dann z.b. der SQL Dialekt konfiguriert, definiert ob Tabellen automatisch erstellt werden oder das Mapping als File gespeichert wird. Mit EntityLoad() und EntitySave() werden Daten geladen und gespeichert.
In Bolt lässt sich aus einer Datenbank ORM CFC Code, ORM Service oder ein Ajax Grid zum ORM Service generieren. Ich nehme mal an das dies wie im Flex Builder auch durch Templates (ColdFusion Code) anpassbar ist. Weiters wird Flex auch ein Syntax Highlighter für Hibernat Quey Language (HQL) haben.
Daten werden dadurch allerdings nicht mehr als Recordset gehalten, sondern als Objekte in einem Array. Das ganze wird dadurch nicht unbedingt performanter, aber durch Dirty Checking, Caching und Lazy Loading (sowohl auf Records und Spalten) wieder teilweise wettgemacht.
Nich zu verachten ist natürlich auch der Aspekt das dadurch auch Datenbankunabhängiger Code erstellt wird. Wer das mal für eine App selber gemacht wird weiss wieviele cfifs dazu nötig sind.
Wie schon in einem vorherigen Eintrag geschrieben ist für Centaur und Bolt ein Beta Formular verfügbar.