Transfer 1.0 Release Notes
The following outlines the compatibility issues, enhancements and bug fixes that have been made for the 1.0 Final release of Transfer.
Please see Installation and Updating on how to install and update your version of Transfer.
To determine the version of your install of Transfer, run the following code:
<cfoutput>
#transferFactory.getVersion()#
</cfoutput>
API Changes
- listByWhere() and readByWhere() have been removed due to the fact that the in line SQL arguments were a security concern.
It is recommended that *byWhere() operations are replaced with *byQuery TQL operations, or by hand writing the SQL to retrieve the requisite primary key from the database, and then passing that to a transfer.get() operation.
- TQL transfer.com.tql.Query object's method 'setParam' had the arguments named 'null' changed to 'isNull', to solve potential BlueDragon compatibility issues.
Enhancements
- Lots of performance improvements
- Improved memory management
- Composite ID configuration
- Transfer Transaction Support
- cascadeSave(), cascadeCreate(), cascadeUpdate(), cascadeDelete()
- Binary data support
- Added 'discardAll()' method
- New 'tablealias' attribute on <object> elements, for shorter generated table aliases
- Package and Order configuration elements can be declared in any order
- New <include> element in the Transfer configuration file, to include Transfer configuration.
- Ability to do multiple file configuration through the addConfigImport() method on the transfer.com.config.Configuration bean.
- The database owner can be specified in the <object> 'table' attribute
- The use of '[]', and '-' is now allowed in the <object> 'table' attribute
- The use of '.' is now allowed in the <object> 'sequence' attribute
- The use of '-' is now allowed in the <object> 'decorator' attribute
- Object meta data has a new function: hasProperty()
- New Transfer Method - visitObjectGraph()
- All generated Transfer methods now have hints, for better documentation.
- New SQL engine
- AbstractFactory implementation to allow for code differences between CF versions
- Offline documentation has been removed from the product, in favour of a online wiki, at http://docs.transfer-orm.com
Bug Fixes
- Bug #to24 - DecoratorWriter :: hasDefinition() throwing error
- Bug #to25 - Concurrency issue in lazy loading
- Bug #to33 - Concurrency issue in Transaction::execute()
- Bug #to2 - Replace isDefined with StructKeyExits for null value checks
- Bug #to23 - ObjectWriter :: hasDefinition() throwing error
- Bug #to5 - Random StackOverflows when using maxminutespersisted
- Bug #to21 - Issue with cfthread in on* methods in Application.cfc
- Fixed bug where using a refresh-update or refresh-insert with a null value fails
- Fixed bug in TQL where the cfqueryparam should be using a timestamp not a date sql type
- Fixed bug where relative createObject() calls could result in weird CFC typing issues
- Fixed bug in TQL where a manytomany join would be wrong in particular orders
- Fixed a concurrency bug in createGUID()
- Fixed mysql bug where PK's were truncated by the CAST
- Fixed bug where if Transfer was invoked on Session of Application End in Application.cfc, it would fail
- Fixed bug where infinite loop could occur inside the caching code
- Fixed issues in JavaLoader which could prevent Transfer running on CF8
- Fixed bug where running lazy loads on a discarded TransferObject could fail
- Fixed bug where same named columns could cause weird population issues
- Fixed outer/inner join bugs in TQL
- Fixed bug where ObjectNotFoundException in discardbyClassAndKey() should be caught, but wasn't
- Fixed bug in createGUID() so it works on 64bit platforms
- Fixed bug in discardBYClassAndKey() wouldn't upper case GUID and UUID primary keys, and therefore, they wouldn't be discarded
- Removed use of Thread.sleep() in createGUID() as it can cause the Windows bug where the system clock goes backwards under high load.
- Fixed bug with CLOB support in Oracle.
- Fixed bug where Structs with null values would cause *ByPropery Operations to fail
- Fixed bug where lazy loaded manytomany collections could be updated with no values, if they weren't yet loaded

Categories: