== 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]]