== 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: #transferFactory.getVersion()# === 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 elements, for shorter generated table aliases * Package and Order configuration elements can be declared in any order * New 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 'table' attribute * The use of '[]', and '-' is now allowed in the 'table' attribute * The use of '.' is now allowed in the 'sequence' attribute * The use of '-' is now allowed in the '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 === * [http://tracker.transfer-orm.com/issue.cfm?p=89977683-A728-9CD3-ABD9545A91734422&i=022AB4D3-A0FD-DBB2-ECA66D4AD6406D83 Bug #to24] - DecoratorWriter :: hasDefinition() throwing error * [http://tracker.transfer-orm.com/issue.cfm?p=89977683-A728-9CD3-ABD9545A91734422&i=090D7D56-BB13-1CAF-C26B42C777E20905 Bug #to25] - Concurrency issue in lazy loading * [http://tracker.transfer-orm.com/issue.cfm?p=89977683-A728-9CD3-ABD9545A91734422&i=0DE43E0F-C616-D5AA-D35F545788400B4F Bug #to33] - Concurrency issue in Transaction::execute() * [http://tracker.transfer-orm.com/issue.cfm?p=89977683-A728-9CD3-ABD9545A91734422&i=A450607A-D1AF-6455-F8839F589F406FAF Bug #to2] - Replace isDefined with StructKeyExits for null value checks * [http://tracker.transfer-orm.com/issue.cfm?p=89977683-A728-9CD3-ABD9545A91734422&i=CB45F45E-C4FD-C890-36F99E76CC306610 Bug #to23] - ObjectWriter :: hasDefinition() throwing error * [ http://tracker.transfer-orm.com/issue.cfm?p=89977683-A728-9CD3-ABD9545A91734422&i=AA438191-F186-2717-3D95B0A75C936EF2 Bug #to5 ] - Random StackOverflows when using maxminutespersisted * [ http://tracker.transfer-orm.com/issue.cfm?p=89977683-A728-9CD3-ABD9545A91734422&i=B9B78A1C-CE4A-8CBD-5827ED25C6523167 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 [[Category:Release Notes]]