Release Notes - Doctrine 2 - ORM - Version 2.0-BETA1 - HTML format

Bug

  • [DDC-100] - Default values are not escaped
  • [DDC-135] - With/on extra join clauses are not yet processed properly by SqlWalker
  • [DDC-142] - Join columns can't be quoted
  • [DDC-163] - Not unique alias error when using the same manyToMany relation from two entity with different alias
  • [DDC-214] - schema-tool --complete-update throw PDOException on DROP INDEX
  • [DDC-220] - 'Ambiguous column: 7 ERROR: column reference "created_by_person_id" is ambiguous at character 466' if ManyToMany through a mapping class is used which extends a base class
  • [DDC-247] - can't set "nullable" using xml mapping
  • [DDC-257] - Typo: @UniqueCosntraint and "yml" instead of XML in docs
  • [DDC-258] - DiscriminatorMap Ordering Affects Mapping
  • [DDC-261] - Object population from OneToOne association
  • [DDC-266] - Example for removing objects by value from a collection is wrong or ambiguous
  • [DDC-268] - ClassMetadataInfo called non-existent exception method. Also: DoctrineException removed from ORM\Mapping
  • [DDC-279] - Custom repository method find returns a empty associated class
  • [DDC-282] - Evaluate use of (bool) in XML-Driver
  • [DDC-284] - Function 'in' of class Expr does not work with an array of strings as parameter
  • [DDC-289] - Owning Side OneToMany through Join-Table fails with MappingException
  • [DDC-290] - OCI8 triggers Warnings on invalid SQL or DB failures (Integrity Constraints)
  • [DDC-297] - XCache caching backend doesn't work: XCache doesn't support storing objects (+patch)
  • [DDC-299] - Wrong parsing of 'on-delete' and 'on-update' attributes of join columns in xml mapping driver
  • [DDC-301] - Column in Table used as PrimaryKey should be set to notnull = true
  • [DDC-302] - Fix or Remove AbstractSchemaManager convenience Alter Table Functionality
  • [DDC-303] - Wrong SQL generated for Drop Foreign Key on Oracle
  • [DDC-304] - Mapping Exporter From Database Driver fails on Oracle
  • [DDC-307] - MOD() DQL generates SQL SQRT() function
  • [DDC-309] - ReflectionException when using AbstractQuery::iterate()
  • [DDC-311] - YAML-Driver does not support hasLifecycleCallbacks
  • [DDC-316] - [PATCH] The command line interface does not support limit or offset flags for DQL queries.
  • [DDC-317] - Using a function only in hydration returns only one result
  • [DDC-318] - AnnotationDriver::getAllClassNames() can incorrectly return empty array
  • [DDC-328] - Query and Result Cache have to depend on HydrationMode
  • [DDC-329] - Reverse Engineering with Foreign Keys that have more than one column
  • [DDC-330] - SIZE(collection) generates wrong SQL with COUNT over several fields
  • [DDC-332] - GROUP BY in Inheritance Scenario fails
  • [DDC-334] - QueryBuilder throws QueryException when Expr\Comparison with 'LIKE' operator was added in where clause
  • [DDC-339] - Parser incorrectly assumes arithmetic expression when finding lower(something)
  • [DDC-340] - DQL Keywords as Model Properties
  • [DDC-342] - @ManyToMany pointing to a Joined Inheritance Hierachy fails
  • [DDC-344] - Table names are not escaped
  • [DDC-345] - Lifecycle callbacks break properties on cascade=persist
  • [DDC-347] - UnitOfWork should close the EntityManager when an exception occurs during commit().
  • [DDC-348] - AbstractFileDriver: _findMappingFile - no Exception thrown if file doesnt exist
  • [DDC-351] - JoinedSubclassPersister uses id field name in query 'DELETE FROM...'
  • [DDC-352] - JOINED inheritance doesn't remove child object
  • [DDC-353] - Doctrine thrown exception, when it is trying to remove not initialized proxy.
  • [DDC-359] - Specified, but empty CLI Options --option= causes Notice undefined offset: 0 [Test case for CliController included]
  • [DDC-362] - Missing namespace declaration in __call function of EntityRepository.php
  • [DDC-363] - "Entity must be managed" exception thrown trying to persist a Proxy entity
  • [DDC-367] - PHP Warning: strpos() expects parameter 1 to be string, array given in ORM/Mapping/ClassMetadataInfo.php on line 1466
  • [DDC-368] - Bulk-Update on CTI CompanyEmployee raises Note
  • [DDC-370] - CTI Retrieval of Scalar fields does not use correct table alias
  • [DDC-371] - Some associations not included in a HINT_REFRESH joined query are selected afterwards
  • [DDC-373] - Improper use of ternary operator in EntityManager::create()
  • [DDC-375] - Subselect in SELECT generate error in SQL
  • [DDC-377] - I broke Oracle Test-Suite with Advanced DQL Testsuite
  • [DDC-381] - InvalidArgumentException: New entity detected during merge. Persist the new entity before merging.
  • [DDC-382] - Doctrine\ORM\Query\Expr->substr does not work
  • [DDC-388] - Private properties in @MappedSupperclass don't work
  • [DDC-396] - SchemaDiff not working well when using ON UPDATE RESTRICT
  • [DDC-399] - Doctrine\DBAL\DBALException: Type XXX already exists.
  • [DDC-401] - Documentation for Bootstrapping lists deprecated classes
  • [DDC-406] - A detached entity can not be removed, on @OneToOne cascade={"remove"}
  • [DDC-409] - Mapping onDelete="CASCADE" and onUpdate="CASCADE" from annotation file to YAML and XML
  • [DDC-411] - Bug in PHPDriver and INHERITANCE_TYPE_JOINED
  • [DDC-412] - YAML can't handle multiple lifecycle events with one method
  • [DDC-416] - [patch] findBy() and @InheritanceType("JOINED")
  • [DDC-420] - AnnotationExporter misquotes repositoryClass value
  • [DDC-422] - Unable to add entity in @ManyToMany association when owning entity is extended from another entity
  • [DDC-425] - E_NOTICE in Doctrine/ORM/UnitOfWork.php when using DateTime w/ DQL
  • [DDC-429] - AritmethicPrimary doesn't handle IdentificationVariable as stated in EBNF
  • [DDC-433] - @ChangeTrackingPolicy values are not converted to integers
  • [DDC-434] - GeneratedValue does not default to 'AUTO'
  • [DDC-439] - Error in CLI utility with YAML files
  • [DDC-444] - Deferred explicit policy doesn't update data
  • [DDC-449] - ClassMetadata Exporter Refactorings broke DatabaseDriverTest
  • [DDC-454] - Failure in Schema Diff ForeignKey handling when several tables are added
  • [DDC-456] - Wrong implementation of loading metadata from cache
  • [DDC-457] - MappingException::classIsNotAValidEntityOrMapperSuperClass does not exist
  • [DDC-462] - Missing EntityGenerator namespace use
  • [DDC-464] - EntityGenerator generates classes with typo
  • [DDC-477] - Schema tool does not support STI - attempts duplicate table creation
  • [DDC-478] - $qb->expr()->between("alias.myfield", $minValue, $maxValue) cannot be parsed into valid SQL
  • [DDC-479] - MEMBER OF generates wrong SQL
  • [DDC-483] - DiscriminatorMap misbehaves when key are Integer
  • [DDC-484] - ProxyException.php not using a use case
  • [DDC-485] - Doctrine\DBAL\Connection::_bindTypedValues() must implement interface Doctrine\DBAL\Driver\Statement
  • [DDC-491] - Quoting Patch completly wrecked OCI8 support
  • [DDC-497] - find() and findAll() on Repository do not work when SINGLE_TABLE inheritance is used
  • [DDC-498] - orm:schema-tool --update fails (errno: 150 on MySQL 5.1.41) attempting to drop foreign keys when not necessary
  • [DDC-500] - Single Table Inheritance Selects
  • [DDC-502] - Remove "mapping-path" from cli schema tool commands
  • [DDC-506] - Schema tool no longer creates AUTO_INCREMENT primary keys in MySQL
  • [DDC-507] - Schema tool --dump-sql (and others) are broken
  • [DDC-508] - CLI help arguments are super confusing, vague, and outright wrong
  • [DDC-512] - LEFT JOIN of extended null entity cause empty result [testcase included]
  • [DDC-526] - Abstract Type needs method "getEmptyValue"
  • [DDC-615] - Single table inhertiance not working when base class is/starts-with "Module"

Improvement

  • [DDC-79] - Allow constructor arguments in persistable models
  • [DDC-125] - Include Query Hints in DQL Query Cache
  • [DDC-139] - onUpdate Event arguments
  • [DDC-156] - Allow custom platform implementations
  • [DDC-160] - Index annotation documentation
  • [DDC-177] - Throw exception if ON/WITH join condition override/extension is used on a fetch-join with HYDRATE_OBJECT
  • [DDC-193] - Remove ClassMetadataInfo#inverseMappings
  • [DDC-195] - Ordering of associations
  • [DDC-255] - Add the PHP 5.3 version of the symfony yaml component for better compatibility with the Doctrine autoloader
  • [DDC-259] - Generated SQL should end with a ';'
  • [DDC-270] - Provide documentation for connection options
  • [DDC-271] - Add optional "columnDefinition" to joinColumn definition
  • [DDC-277] - Remove support for default values
  • [DDC-278] - Add columnDefinition attribute to Schema XML
  • [DDC-283] - Evaluate triggering events in Schema-Tool
  • [DDC-292] - Couldn't EntityPersister compute many methods only once?
  • [DDC-305] - Add AbstractPlatform::getTruncateTableSql() abstraction
  • [DDC-312] - Improve View support of Doctrine\DBAL package
  • [DDC-313] - Remove all the unnecessary stuff from Schema and Platform, like Triggers
  • [DDC-319] - Complete DQL Functions Support
  • [DDC-335] - Refactor DQL EBNF to use JOIN FETCH as syntax for fetch joins only
  • [DDC-341] - Add Composite Model-Set and Test-Suite
  • [DDC-350] - EntityManager::persist behaves undefined if a non-object is passed.
  • [DDC-354] - Set parameter on NativeQuery shouldn't quote numbers
  • [DDC-355] - [Patch] Throw exception if class in DiscriminatorMap is unknown
  • [DDC-356] - [Patch] Driver refactoring, part 1
  • [DDC-358] - Improve UnitOfWork Event-Trigger Capabilities
  • [DDC-366] - Provide namespace aliasing through the AnnotationReader
  • [DDC-376] - XML Mapping Driver 'inheritance-type' attribute requires numerical values not names
  • [DDC-384] - Add support for Entity namespacing globally
  • [DDC-394] - Enable method chaining on EntityManager::persist
  • [DDC-395] - Explicitly mark constructors public
  • [DDC-414] - Improve Performance of onUpdate Event Listeners
  • [DDC-421] - Add getFieldValue on ClassMetadata class
  • [DDC-423] - Update Doctrine\Common\Collection\Collection
  • [DDC-442] - Wrong mapping type shown in one of the examples used in the Optimistic Locking documentation for D2
  • [DDC-452] - Add section about IdGenerators in Basic Mapping Chapter
  • [DDC-469] - Handle adding of tasks better
  • [DDC-471] - Poor description of @ChangeTrackingPolicy in Annotations Reference
  • [DDC-474] - Confusing examples for @ManyToMany in Annotations Reference
  • [DDC-475] - Outdated information on class loading
  • [DDC-492] - Doctrine\ORM\Query\TreeWalkerAdapter needs to provide access to private $_query member
  • [DDC-510] - Refactor Metadata Configuration
  • [DDC-539] - Change 'believe' to 'belief'

New Feature

  • [DDC-126] - Design Query and AbstactQuery as Fluent Interface
  • [DDC-294] - Implement "postConnect" Event in Doctrine\DBAL\Connection
  • [DDC-343] - Make it possible to force reloading of instanciated models
  • [DDC-374] - Implement DriverChain Mapping Driver
  • [DDC-379] - Implement entity aliases
  • [DDC-397] - Implement orm:generate-repositories task
  • [DDC-489] - Doctrine 2 Cookbook addition: Integrating with CodeIgniter

Task

  • [DDC-10] - Complete association-mapping chapter
  • [DDC-12] - Enhance "Working with objects" chapter
  • [DDC-37] - Add annotation reference to documentation
  • [DDC-92] - Remove DoctrineException and introduce Doctrine\ORM\ORMException and Doctrine\DBAL\DBALException instead
  • [DDC-189] - Implement SqlWalker::walkSingleValuedAssociationPathExpression()
  • [DDC-288] - Remove deprecated flush modes.
  • [DDC-467] - Remove capitalization of first namespace character
  • [DDC-468] - Add validation to CLI Tasks

Sub-task

  • [DDC-295] - Create Oracle Session Init "postConnect" EventSubscriber
  • [DDC-296] - Create Mysql Session Init "postConnect" EventSubscriber
  • [DDC-320] - Fix Implementation of SUBSTRING in DQL across platforms
  • [DDC-321] - Provide way to hook PHP functions into Sqlite as part of Functions API
  • [DDC-322] - Fix Implementation of TRIM in DQL across platforms
  • [DDC-323] - Fix implementation of MOD in DQL using SqLite
  • [DDC-324] - Fix Implementation of SQRT in DQL using SqLite
  • [DDC-325] - Fix Implementation of LOCATE in DQL for all platforms
  • [DDC-336] - Add @OrderBy(sql) to Mapping Drivers
  • [DDC-337] - Add ORDER BY clause to collection persister SQL generation
  • [DDC-338] - Change DQL Parser to comply with ordered collections

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.