v2.7.2 - Mar 21, 2020

    Total issues resolved: 4
    Total pull requests resolved: 5
    Total contributors: 8

Documentation

    8041: Improve documentation about naming strategy usage thanks to @RosemaryOrchard

Bug

    8031: Undefined alias for Embeddable in 2.7.1 thanks to @vicdelfant
    8030: Problem with Proxies on PHP 7.4.2 with typed properties thanks to @bizley
    8023: Put into cache using root entity name thanks to @peterkeatingie
    7969: Child entity not retrieved from array cache thanks to @peterkeatingie
    8055: Fix regression in 2.7.1 when mysqli is used with discriminator column that is not a string thanks to @mpdude
    8050: [GH-7633] disallow cache partial objects thanks to @beberlei
    8036: Fix inherited embeddables and nesting after AnnotationDriver change #8006 thanks to @malarzm
    7633: Partial objects get cached and break "actual" objects thanks to @Amunak


v2.7.1 - Feb 15, 2020

A notable change of this version is the introduction of ocramius/package-versions to provide version information, most importantly when using the
Doctrine CLI. That also means that you cannot rely on Doctrine\ORM\Version::VERSION constant anymore going forward it will always point to 2.7.1-DEV.

    Total issues resolved: 4
    Total pull requests resolved: 11
    Total contributors: 11

Bug

    8006: Make Embeddable not transient thanks to @malarzm
    7987: [GH-7982] no sql executor leads to parse error thanks to @beberlei
    7983: Null offset access in DQL parser thanks to @ntzm
    7974: [GH-7505] Bug in SimpleObjectHydrator when using inheritance with same field thanks to @beberlei and @m-r-r
    7940: [GH-7864] Bugfix in PersistentCollection::removeElement for EXTRA_LAZY. thanks to @beberlei
    7934: Fix Trying to access array offset on value of type null thanks to @BenMorel
    7957: Fix version information thanks to @lcobucci

Documentation

    7973: Just a micro grammar update. thanks to @DocFX
    7619: Update improving-performance.rst to reflect current state of PHP ecosystem thanks to @Majkl578
    7500: Prefer PhpFileCache for caching docs thanks to @shadowhand

CI,Deprecation

    7956: Ignore Doctrine\Common\Persistence\ObjectManagerDecorator deprecation thanks to @lcobucci

Bug,Regression

    7937: Revert SchemaTool change to check for foreign key support thanks to @beberlei and @fmathieu1

BC Break,Bug

    7875: Whilelist existing assets we know about from metadata in SchemaTool::getUpdateSchemaSql() thanks to @nicolas-grekas


v2.7.0 - Nov 19, 2019

This release solves Symfony 5.0 compatibility issues, some small improvements, and adds various deprecation notices.

Please read carefully the upgrade to 2.7 notes to know more about the reasons and how to fix the deprecation messages.

    Total issues resolved: 1
    Total pull requests resolved: 15
    Total contributors: 10

Deprecation

    7911: Be explicit about which Doctrine package in message thanks to @lcobucci
    7909: Add deprecation messages thanks to @lcobucci
    7901: Add deprecation warnings for 2.7.x thanks to @lcobucci
    7701: Split and deprecate AbstractQuery#useResultCache() thanks to @someniatko

CI

    7904: Make sure composer files are valid thanks to @greg0ire
    7600: [2.7] CI: Test against PHP 7.4snapshot instead of nightly (8.0) thanks to @Majkl578

Improvement

    7876: Fix compat of commands with Symfony 5 thanks to @nicolas-grekas
    7829: Skip Paginator LIMIT subquery and WHERE IN if query do not have LIMIT thanks to @Seb33300
    7723: Allow Symfony 5.0 thanks to @nicolas-grekas
    7710: Prettified arrays in tool command orm:mapping:describe thanks to @rtek
    7340: Fix config template for PHPUnit >= 7.2 thanks to @guilliamxavier

BC Break,Improvement

    7863: Paginator: Skip limit subquery if not required thanks to @Seb33300

Documentation

    7382: Update homepage thanks to @Majkl578

Bug

    7326: Cherry-pick #7307 to fix remaining usages of deprecated ClassLoader and Inflector from doctrine/common thanks to @nicolas-grekas
    7079: Fix getJoinTableName for sqlite with schema attribute thanks to @mairo744

BC Break,Deprecation,Improvement

    6803: Deprecation of EntityManager copy method thanks to @SenseException


v2.6.6 - Nov 18, 2019

This release solves the violation of our BC guarantees, we apologise for impacting existing software.

    Total issues resolved: 0
    Total pull requests resolved: 1
    Total contributors: 1

BC Break,Bug

    7908: Fix BC-break on underscore naming strategy thanks to @lcobucci


v2.6.5 - Nov 18, 2019

This release fixes some important bugs (including a few regressions related to the paginator component and cleaning collections when using DEFERRED_EXPLICIT).

It also marks the EOL for the v2.6.x series since we'll soon be releasing v2.7.0.

    Total issues resolved: 9
    Total pull requests resolved: 23
    Total contributors: 24

Bug,Regression

    7905: [Paginator] Fix type conversion during hydration of pagination limit subquery thanks to @akorz, @lcobucci, and @ostrolucky
    7862: Using ArrayCollection-&gt;clear over an entity marked to be persisted, doesn't create corresponding DELETE statements thanks to @ferrastas and @ostrolucky
    7861: Delete statements will not be created using clear thanks to @ferrastas

Bug

    7869: UnitOfWork::clear() misses $eagerLoadingEntities thanks to @BenMorel
    7865: #7837 paginate with custom identifier types even with enabled DQL query cache thanks to @Ocramius
    7856: Fix underscore naming strategy behaviour with numbers thanks to @lcobucci
    7855: Numbers in a string using underscore naming strategy thanks to @vuras
    7850: Don't merge PersistentCollection orderBy with criteria in matching() thanks to @nlx-lars
    7842: #7841 SchemaTool generates extra diff for platforms without FK support thanks to @vpArth
    7764: #7763 escape quotes in field comments thanks to @guillaume-a
    7763: "doctrine:mapping:import" does not escape quotes in field comments thanks to @guillaume-a
    7684: only replace '_id' at end of columnName thanks to @rharink

CI

    7889: Use quoted collation declaration when available, fixes test suite when running against DBAL 2.10+ thanks to @ajgarlag

Documentation

    7884: [Documentation] Advanced field value... - missing entity alias thanks to @rogeriolino
    7880: Update documentation to recommend DQL over QueryBuilder when possible thanks to @kuraobi and @javiereguiluz
    7871: AbstractQuery::getSingleScalarResult() throws exception when no result thanks to @BenMorel
    7858: Invalid version in Doctrine\ORM\Version::VERSION thanks to @guillaumesmo
    7849: Mention SQL logger impact on batch processing thanks to @axi
    7838: Fix the name of ClassMetadata in documentation thanks to @samnela
    7768: Fix EntityManagerHelper's documentation (it can't accept an array of paths) thanks to @mickaelandrieu
    7727: [doc] Finish incomplete definition of class UTCDateTimeType thanks to @madand
    7671: Added missing "the" thanks to @jschaedl
    7667: Fixes example One-To-One, Self-referencing thanks to @jschaedl
    7443: Added doc about exception in Query#getOneOrNullResult() thanks to @naitsirch and @Mynyx
    7298: Add a missing type in Query::getFirstResult PHPDoc thanks to @dunglas

Improvement

    7851: Remove not used variable $reflFieldValue in ObjectHydrator thanks to @peter-gribanov


v2.6.4 - Sep 23, 2019

This release fixes many bugs (including a performance regression) and makes the v2.x series compatible with PHP 7.4.

    Total issues resolved: 11
    Total pull requests resolved: 32
    Total contributors: 30

Improvement

    7785: Fix "access array offset on value of type null" PHP 7.4 notices thanks to @mlocati
    7142: Rename this repository to doctrine/orm thanks to @greg0ire

Bug

    7821: Bug: #7820 paginator ignores dbal type conversions in identifiers thanks to @Ocramius
    7778: Guard L2C regions against corrupted data thanks to @umpirsky
    7767: PersistentCollection::matching() does not respect the collections native sorting thanks to @stephanschuler
    7766: Respect collection orderBy meta when matching() thanks to @stephanschuler
    7761: Do not modify UOW on PersistentCollection::clear() when owner has DEFFERED_EXPLICIT change tracking policy thanks to @paxal
    7750: Fix incorrect return of null values in L2C thanks to @AlexSmerw
    7737: Fix MEMBER_OF comparison when using criteria in query builder thanks to @Smartel1
    7735: Null in fields value in Cached Entity several times on day on high-load project. thanks to @AlexSmerw
    7630: Fix #7629 - scheduledForSynchronization leaks memory when using @ORM\ChangeTrackingPolicy(&quot;DEFERRED&#95;EXPLICIT&quot;) thanks to @yethee
    7528: Prevent UnitOfWork lookup for DBAL types specified in Doctrine\ORM\Query#setParameter() thanks to @Ocramius
    7322: JoinedSubclassPersister pass identifier types on delete thanks to @dennisenderink and @fred-jan
    7266: Call to a member function resolveAssociationEntries() on boolean {"detail":"[object] (Symfony\Component\Debug\Exception\FatalThrowableError(code: 0): Call to a member function resolveAssociationEntries() on boolean at /www/vendor/doctrine/orm/lib/Doctrine/ORM/Cache/DefaultQueryCache.php:140)"} thanks to @mingmingxianseng
    4632: DDC-3789: Paginator does not convert entity ids if they are value objects thanks to @doctrinebot

Documentation

    7818: Add note into docs about not using SimpleAnnotationReader thanks to @SenseException
    7791: Fix preFlush event documentation stating incorrectly that flush can be called safely thanks to @Steveb-p
    7753: Add ORM annotations in getting-started docs thanks to @SenseException and @wajdijurry
    7744: Fixed a typo-error thanks to @noobshow
    7732: [Documentation] Missing comma fix thanks to @lchrusciel
    7729: Update DATE_ADD and DATE_SUB docs thanks to @JoppeDC
    7672: Added cross-links to relevant documentation thanks to @jschaedl
    7612: Update ordered-associations.rst thanks to @spirlici
    7610: Change APC to OPcache in improving-performance.rst thanks to @smtchahal
    7596: Correct method names and broken link in docs thanks to @mbessolov
    7577: Fix of single link to dbal docs in advanced-configuration.rst thanks to @SenseException
    7572: Remove codeigniter Framework example thanks to @SenseException
    7571: Fix typo in inheritance mappings docs thanks to @batwolf
    7557: Change Stackoverflow tag to doctrine-orm thanks to @malarzm
    7551: [2.6] Migrate repository name doctrine/doctrine2 -> doctrine/orm thanks to @Majkl578
    7530: Documentation error typo fix: s/Used-defined/User-Defined thanks to @vladyslavstartsev
    7519: #7518 Fixed type mismatch between EntityRepository#&#95;&#95;construct() and its documented constructor arguments thanks to @koftikes
    7518: EntityRepository::&#95;&#95;construct() expects Doctrine\ORM\EntityManager instead of actual required EntityManagerInterface thanks to @koftikes
    7490: Fix broken link thanks to @vladyslavstartsev
    7483: Fixed a minor syntax issue thanks to @javiereguiluz

CI

    7794: Fix test compatibility with DBAL 2.10.x-dev thanks to @lcobucci
    7731: Replace custom install script with add-on thanks to @greg0ire
    7473: Incremental CS checks in 2.x branches thanks to @Majkl578


v2.6.3 - Nov 21, 2018

This release provides fixes for many things, specially:

    Regression in commit order calculation
    BC-break in EntityManager#find() using optimistic lock outside of
    transaction
    PHP 7.3 compatibility issues

    Total issues resolved: 8
    Total pull requests resolved: 26
    Total contributors: 26

Documentation

    7472: fix incorrect phpdoc typehint thanks to @seferov
    7465: Fixes tiny typo in the 'Working with DateTime instances' documentation thanks to @unguul
    7444: Fixed URLs of doctrine-mapping.xsd in docs thanks to @naitsirch
    7441: $hydrationMode throughout can be a string as well as int (for custom modes) thanks to @asgrim
    7435: Fix a typo on Documentation thanks to @oguzdumanoglu
    7434: Removed FAQ paragraph stating public variables are disallowed thanks to @naitsirch and @flaushi
    7423: Update association-mapping.rst thanks to @ThomasLandauer
    7421: JIRA to Github issues on Limitations and Known Issues thanks to @seferov
    7412: Some formatting improvements thanks to @ThomasLandauer
    7411: Autoload error when following the Getting Started Guide thanks to @ThomasLandauer
    7401: [docs] Fix docblock in inheritance-mapping.rst thanks to @bobdenotter
    7397: Update getting-started.rst thanks to @eibt
    7394: Class 'Doctrine\Common\Persistence\Mapping\Driver\AnnotationDriver' not found thanks to @ekosynth
    7378: Typo fix thanks to @BenMorel
    7377: Fix query andX doctype thanks to @sserbin
    7374: Deprecation message in documentation for YAML thanks to @SenseException and @iltar
    7360: Document getPartialReference() properly thanks to @lcobucci

Bug

    7471: Fix parameter value processing for objects with unloaded metadata thanks to @alcaeus
    7367: Fix for BC break in 2.6.2 when calling EM::find() with LockMode::OPTIMISTIC outside of a TX thanks to @timdev
    7328: Handle removed parameters by tree walker in Paginator thanks to @plfort
    7325: Make code php 7.3 lint-compatible thanks to @paxal
    7317: [XML] Fix default value of many-to-many order-by to ASC thanks to @alexdenvir
    7260: Fix the handling of circular references in the commit order calculator thanks to @stof
    6830: fix applying column options on foreign key columns thanks to @Tobion

Improvement

    7428: CI: Test against PHP 7.3 thanks to @Majkl578
    7363: Fix compatibility with phan thanks to @philippe-unitiz
    7345: Correct DOMDocument constructor in test thanks to @guilliamxavier
    7307: Fix remaining usages of deprecated ClassLoader and Inflector from doctrine/common thanks to @Majkl578 and @simonwelsh


v2.6.2 - Jul 12, 2018

This release provides fixes for:

    a regression in parsing of DQL with aggregate functions as arguments in other functions,
    pessimistic locking without running transaction,
    using non-deprecated Lexer and Inflector.

    Total issues resolved: 3
    Total pull requests resolved: 7
    Total contributors: 5

Bug

    7296: Fix #7286: StringPrimary no longer accepts aggregate functions as argument thanks to @Majkl578 and @NothingWeAre
    7291: [2.6] Fix for #7068: EntityManager::find() with pessimistic lock should check for transaction thanks to @Majkl578 and @madwizard-thomas
    7274: Use non-deprecated version of Lexer and Inflector thanks to @Majkl578
    7190: Fix wrong type in phpdoc of Doctrine\ORM\Id\AbstractIdGenerator#generate() thanks to @Tobion
    7146: [XML] Fix default value of one-to-many order-by to ASC thanks to @Awkan

Improvement

    7290: Fix compatibility with DBAL 2.8 (doctrine/dbal#3157) thanks to @Majkl578

Documentation

    7276: Add UPGRADE note for EntityRepository::count() thanks to @Majkl578


v2.6.1 - Feb 27, 2018

This release provides fixes for:

    a regression in parsing of DELETE DQL queries without a DQL alias
    a regression in hydration of fields of intermediate classes multi-level single-/multi-table-inheritance
    a call to an undefined Doctrine\Common\Cache\MemcachedCache::setMemcache() method in the setup tooling
    persistence order for entities with identity through associated entity
    some persistence issues with join columns with special characters in them, which need to be quoted
    incorrect SQL parameter type binding in the basic entity persister
    versioned entity version fields caching within the second level cache

Total issues resolved: 23

    6043: Identity through foreign Entities - persist thanks to @Gorjunov
    6531: Cannot persist parent entity if OneToOne shares the same id thanks to @davidbarratt
    6701: Fix identity through foreign entities thanks to @vhenzl
    6939: Error for delete query without alias since 2.6.0 thanks to @dmaicher
    6971: Exception Call to undefined method Doctrine\Common\Cache\MemcachedCache::setMemcache() thanks to @rolando-caldas
    6988: Inheritance middle-layer doesn't get hydrated thanks to @kbond
    6997: ManyToManyPersister fails to remove join table entry if there is multiple join columns thanks to @NicolaF
    7002: Flush new entity with relation when use relation in composite key throws ORMInvalidArgumentException thanks to @samplestudio
    7003: Cannot persist new entity if primary key contains a foreign key and the referenced object is in state new and its id is not assigned thanks to @NicolaF
    7012: Fixed updating of entity with quoted identifier join column thanks to @janlanger
    7021: Fix incorrect variable reference thanks to @lcobucci
    7031: Tests failing in February (QueryDqlFunctionTest::testDateAdd with "month" dataset) thanks to @Majkl578
    7032: QueryDqlFunctionTest: Increase delta for testDateAdd() to work in February thanks to @Majkl578
    7051: Bugfix: Hydrate subclasses of subclasses thanks to @technetium
    7053: Fixed parser rejecting valid DQL thanks to @carnage
    7055: Fix date issues once and for all thanks to @lcobucci
    7059: Querying abstract class in the middle of a hierarchy returns NULL instead of objects thanks to @BenMorel
    7062: BasicEntityPersister confuses association types with PDO datatypes thanks to @mariusklocke
    7067: ORM second level cache and version (locking) thanks to @wtorsi
    7069: Test for Second level cache with Version, DDC #7067 thanks to @wtorsi
    7077: Fix BC-break on delete without alias DQL thanks to @lcobucci
    7082: Add failing test for issue #7062 - BasicEntityPersister confuses association types with PDO datatypes thanks to @mariusklocke
    7093: Fix updating entities with quoted identifier association thanks to @lcobucci


v2.6.0 - Dec 20, 2017

This release contains almost 3 years of active development and it provides several improvements and fixes, including:

    Better commit order calculation
    More stable second level cache
    Strict testing and quality control
    PHP 7.1+ requirement

Changes since 2.5.0

Total issues resolved: 444
Minor BC-Break

    6216: Remove unused "$className" argument thanks to @malukenho
    6325: Improve exception message for DQL single-valued association path expression to an inverse side (unsupported) thanks to @Isinlor
    6500: Allow internal functions to be overridden. thanks to @ThePixelDeveloper
    6556: Update ConsoleRunner's command list to include L2 cache and DBAL reserved keywords commands thanks to @lcobucci
    6905: Setup: Switch Apc -> Apcu and Memcache -> Memcached thanks to @Majkl578

New Feature

    1308: [DDC-3579] Allow override of inversedBy thanks to @z38
    1343: Support embeddables in partial object query expression [DDC-3621] thanks to @krixon
    1514: check if collection is empty without loading it thanks to @Metabor
    4401: DDC-3580: [GH-1308] [DDC-3579] Allow override of inversedBy thanks to @doctrinebot
    4475: DDC-3647: [GH-1354] [RFC] Added support for OneToMany with orphanRemoval. thanks to @doctrinebot
    5934: Allow override of fetch for associations thanks to @patrick-mcdougle
    5938: #5934 - add fetch option to AssociationOverride in order to override fetch strategy for subclasses of entities thanks to @Ma27
    6003: Expose EntityPersister::count() through EntityRepository::count() thanks to @phansys
    6397: This should fix Criteria startsWith and endsWith thanks to @svycka

Improvement

    1228: Fixed many small phpcs issues thanks to @acrobat
    1303: make QueryBuilder::getAllAliases public thanks to @mrkrstphr
    1310: Allow symfony 3.0 components thanks to @nicolas-grekas
    1344: Fix tests for SLC console commands failing due to console output decoration thanks to @billschaller
    1357: Drop useless execution bit thanks to @DavidPrevot
    1370: drop doctrine/common git submodule thanks to @TomasVotruba
    1382: Patch second level cache association hydration thanks to @holtkamp
    1384: Fix coding standard of IdentityGenerator#generate() thanks to @TomasVotruba
    1397: Add Expr::concat support for multiple arguments thanks to @giosh94mhz
    1400: mysqli is supported by HHVM thanks to @photodude
    1401: Remove HHVM-nightly builds thanks to @stof
    1405: EntityManager#getReference throw ORMException for unrecognized id thanks to @taueres
    1407: Add return to removeMethodTemplate thanks to @aivus
    1433: Check for non-cacheable entities on metadata level, not at runtime thanks to @goetas
    1451: composer: autoload via PSR-4 thanks to @TomasVotruba
    1452: composer: dev is now by default thanks to @TomasVotruba
    1457: Updated syntax for "integer" and "boolean" types thanks to @phansys
    1466: Travis: Switch to container-based infrastructure thanks to @Majkl578
    1470: [CI] Added dev requirement for "doctrine/coding-standard" thanks to @phansys
    1472: Add test for MariaDB 5.5 and 10.1 on Travis thanks to @PowerKiKi
    1474: Fix: Remove unused imports thanks to @localheinz
    1482: Add type hint for entity manager thanks to @bocharsky-bw
    1518: Added custom ID generator definition to the FieldBuilder thanks to @guiwoda
    1545: Generic overall fixes thanks to @guilhermeblanco
    1561: [DDC-4006] Inherit ID generator strategy mapping from embeddables thanks to @deeky666
    1563: Fixing method name 'rollBack', which was documented as 'rollback' thanks to @rawkode
    1570: [RFC] Tests around reported cases over DDC-2524 thanks to @guilhermeblanco
    1574: deduplication of internal UnitOfWork methods thanks to @Ma27
    1575: Add message to NonUniqueResultException thanks to @Alfredao
    1579: Reduce code duplication in ProxyFactory::createInitializer thanks to @aschempp
    4267: DDC-3458: [GH-1228] Fixed many small phpcs issues thanks to @doctrinebot
    4405: DDC-3584: [GH-1310] Allow symfony 3.0 components thanks to @doctrinebot
    4484: DDC-3655: [GH-1362] Readme: badges for 2.5 added; 2.3- dropped thanks to @doctrinebot
    4494: DDC-3664: [GH-1369] Drop empty file thanks to @doctrinebot
    4495: DDC-3665: [GH-1370] drop doctrine/common git submodule thanks to @doctrinebot
    4499: DDC-3669: [GH-1373] Add note about "symfony/yaml" dependency for yml mappings thanks to @doctrinebot
    4527: DDC-3694: [GH-1384] Fix coding standard of IdentityGenerator#generate() thanks to @doctrinebot
    4553: DDC-3717: [GH-1397] Add Expr::concat support for multiple arguments thanks to @doctrinebot
    4562: DDC-3725: [GH-1400] pgsql and mysqli are supported by HHVM thanks to @doctrinebot
    4563: DDC-3726: [GH-1401] Remove HHVM-nightly builds thanks to @doctrinebot
    4569: DDC-3731: [GH-1405] EntityManager#getReference throw ORMException for unrecognized id thanks to @doctrinebot
    4572: DDC-3734: [GH-1407] Add return to removeMethodTemplate thanks to @doctrinebot
    4626: DDC-3783: [GH-1433] Check for non-cacheable entities on metadata level, not at runtime thanks to @doctrinebot
    4658: DDC-3811: [GH-1451] composer: autoload via PSR-4 thanks to @doctrinebot
    4659: DDC-3812: [GH-1452] composer: dev is now by default thanks to @doctrinebot
    4672: DDC-3824: [GH-1457] Updated syntax for "integer" and "boolean" types thanks to @doctrinebot
    4684: DDC-3835: [GH-1466] Travis: Switch to container-based infrastructure thanks to @doctrinebot
    4691: DDC-3841: [GH-1470] [CI] Added dev requirement for "doctrine/coding-standard" thanks to @doctrinebot
    4697: DDC-3847: [GH-1474] Fix: Remove unused imports thanks to @doctrinebot
    4741: DDC-3887: [GH-1499] minor: removed useless line breaks thanks to @doctrinebot
    4743: DDC-3889: GH-1482 - add EntityManagerInterface type-hint to repository constructor thanks to @doctrinebot
    4771: DDC-3913: [GH-1514] check if collection is empty without loading it thanks to @doctrinebot
    4775: DDC-3917: [GH-1518] Added custom ID generator definition to the FieldBuilder thanks to @doctrinebot
    4792: DDC-3932: [GH-1526] Break on autoloader selected thanks to @doctrinebot
    4840: DDC-3980: [GH-1545] [WIP] General fixes thanks to @doctrinebot
    4849: DDC-3989: [GH-1550] [RFC] Added composer cache on travis thanks to @doctrinebot
    4855: DDC-3994: [GH-1553] doc fix thanks to @doctrinebot
    4873: DDC-4009: [GH-1563] Fixing method name 'rollBack', which was documented as 'rollback' thanks to @doctrinebot
    4912: DDC-4159: [GH-1579] Reduce code duplication in ProxyFactory::createInitializer thanks to @doctrinebot
    5548: Cleanup - ClassMetadataInfo#getColumnNames() simplification thanks to @Ocramius
    5557: Remove unnecessary namespaces imports and usage thanks to @malukenho
    5579: Fix performance issue when using notify tracking policy and calling flush($entity) multiple times thanks to @xhuberty
    5580: Move from coveralls to scrutinizer coverage thanks to @Ocramius
    5600: Remove dead code SQLWalker::walkCaseExpression thanks to @billschaller
    5634: Remove duplicate code in .travis.yml thanks to @alexislefebvre
    5651: Updated all commands to use the SymfonyStyle thanks to @hiddewie
    5673: removed unused use statement thanks to @svycka
    5713: Cleanup no longer used coveralls settings; use scrutinizer badges thanks to @OndraM
    5740: Fix onNotSuccessfulTest skipping the latest query thanks to @guilliamxavier
    5756: s/__tostring()/__toString() in Expr\OrderBy thanks to @whyte624
    5796: Catch Throwable instead of just catching Exception thanks to @BenMorel
    5823: Optimize imports. Remove full qualified class names. Remove dead code. thanks to @munkie
    5831: Multi get implementation in QueryCache thanks to @polyanin
    5860: Removed hacky switch/case, migrated to if/else and early return statements thanks to @peter-gribanov
    5862: Remove PHP 5.4 from travis builds thanks to @tPl0ch
    5863: Remove EOL PHP 5.4 from .travis.yml and composer.json - Fixes #5862 thanks to @tPl0ch
    5883: Make test suite compatible with PHPUnit 5.4. thanks to @sebastianbergmann
    5884: Drop PHP 5.5 support thanks to @Ocramius
    5886: removed some unused variables thanks to @ostrolucky
    5910: Code cleanups: early return/internal function usage thanks to @ReenExe
    5911: Scrutinizer clear code thanks to @ReenExe
    5913: Clear code metadata info thanks to @ReenExe
    5914: Cleanup SqlWalker code thanks to @ReenExe
    5977: Remove unneeded ternary operator from Query::contains thanks to @ostrolucky
    5987: Add missing type hints, add strictness for some checks, remove some useless calls thanks to @phansys
    6005: Improve functional test query logger thanks to @cvuorinen
    6010: Update exception message at EntityRepository::&#95;&#95;call() thanks to @phansys
    6014: As of HHVM 3.15 pgsql is supported, add php 7.1 to tests thanks to @photodude
    6017: Avoid error when entityName isn't a string thanks to @j0k3r
    6029: Misleading ORMInvalidArgumentException message thanks to @foaly-nr1
    6038: Remove excessive identifier hashing generated string length checks thanks to @ReenExe
    6068: Update docblock generation for nullable fields thanks to @phansys
    6085: More specific named native query throw exceptions test thanks to @arjank
    6121: Static Code Analysis with Php Inspections (EA Extended) thanks to @kalessil
    6136: [DX] Add details about invalid Connection passed at creation of EntityManager. thanks to @spacepossum
    6141: Allow using objects as discriminators thanks to @lcobucci
    6143: fixed #5622 - mysql 5.7 ONLY_FULL_GROUP_BY thanks to @chihiro-adachi
    6162: Report that FROM and JOIN do not support Subqueries thanks to @simonheimberg
    6164: EntityGenerator produces class with 2 empty lines at the end of the file thanks to @eyepin
    6166: Normalise codebase with PHP 5.6 features thanks to @lcobucci
    6204: Remove PHP 5 support thanks to @alcohol
    6205: Remove support for PHP 5.x thanks to @railto
    6231: Allow gearman environment vars in the concurrency test setup thanks to @gadelkareem
    6232: Allow gearman environment vars in the concurrency test setup thanks to @gadelkareem
    6245: Use getMultiple() to fetch associations as well in L2 cache fetch operations thanks to @lcobucci
    6286: Fix HHVM build according to Travis documentation thanks to @lcobucci
    6377: Minimum dependencies thanks to @sam-burns
    6378: PHPUnit 6 thanks to @sam-burns
    6389: XSD definition improvements thanks to @mikesimonson
    6412: "Notice: Undefined offset: 0" when there is no ID Column defined thanks to @jarjak
    6424: HHVM support thanks to @lcobucci
    6433: Remove dead code in the schema tool thanks to @mpdude
    6439: align equals signs thanks to @sensorario
    6440: Initial PHPStan integration thanks to @ondrejmirtes
    6442: Compute size of loaders in the test suite beforehand, and not on each iteration thanks to @sensorario
    6451: Allow Symfony 4.0 thanks to @nicolas-grekas
    6478: Fix YAML related tests thanks to @lcobucci
    6479: Fix all risky tests thanks to @lcobucci
    6481: Improve build extensions thanks to @lcobucci
    6493: Minor fixes: typos, documentation, etc. thanks to @astepin
    6507: Upgrade dependencies thanks to @lcobucci
    6511: Define build failure conditions on scrutinizer thanks to @lcobucci
    6515: Use the Travis' Trusty build environment thanks to @lcobucci
    6535: [master] PHPStan integration - levels 0 + 1 thanks to @Majkl578
    6569: Added a test case for postLoad on fetch-joined entities - fetch joined entities should have lifecycle events fired as well thanks to @stoccc
    6570: Prevent Travis-CI failure if xdebug is not available thanks to @stloyd
    6575: Move performance tests to phpbench thanks to @lcobucci
    6581: Travis enhancements: Use Build Stages, added PHP 7.2 thanks to @Majkl578
    6593: Mapped entity listeners are now processed by metadata exporters thanks to @tPl0ch
    6598: Refinement of the XML DTD - using orm:fqcn for class names thanks to @mikesimonson
    6601: Fix double spacing in "cascade persist missing" exception message thanks to @martin-georgiev
    6606: Add message to NonUniqueResultException thanks to @lcobucci
    6607: Be strict with risky tests thanks to @lcobucci
    6630: Remove reliance on Symfony\Component\Yaml deprecated constants thanks to @Ocramius
    6655: Use SymfonyStyle for command output thanks to @oskarstark
    6691: Use newer PHP syntax thanks to @keradus
    6703: Entity generator doesn't generate values for all supported options thanks to @lcp0578
    6714: Remove unnecessary else thanks to @guiajlopes
    6723: Remove $overrideLocalValues variable from UnitOfWork#createEntity() thanks to @Ocramius
    6731: #6723 Remove variable from UnitOfWork#createEntity() thanks to @guiajlopes
    6734: Add DateInterval type parameter thanks to @ossinkine
    6742: Add support second, minute, week, year on DATE_ADD and DATE_SUB thanks to @legenyes
    6772: Disallow orphan removal attribute on many-to-one thanks to @greg0ire
    6780: getRepository actually returns ObjectRepository thanks to @aequasi
    6801: Improve misleading ORMInvalidArgumentException message thanks to @foaly-nr1
    6819: Pagination LimitSubqueryWalker optimization thanks to @plfort
    6820: #6819 Optimize LimitSubqueryWalker thanks to @plfort
    6826: Add Type::GUID to $typeAlias list in EntityGenerator thanks to @jkapitein
    6843: Use new analyser on scrutinizer-ci thanks to @lcobucci
    6844: Configure PHPCS thanks to @lcobucci
    6849: Make entity generator generate values for all supported options thanks to @lcobucci
    6862: Fix closing tag in Symfony UI messages thanks to @oskarstark
    6887: Use stable packages thanks to @greg0ire
    6889: Clean elses thanks to @carusogabriel
    6892: Re-order attributes of relation complex types thanks to @thexpand
    6895: Reduce complexity of LimitSubqueryWalker#walkSelectStatement() thanks to @lcobucci
    6896: Run all code quality tools in the same stage thanks to @lcobucci
    6897: Upgrade PHPStan to 0.9.x thanks to @lcobucci
    6911: Require more up-to-date dependencies thanks to @lcobucci

Fixes

    1337: Paginator OrderBy fix take 2 thanks to @billschaller
    1345: Fix crashes in ConvertMappingCommand and GenerateEntitiesCommand... thanks to @billschaller
    1346: Fix: generated IDs are converted to integer thanks to @pepakriz
    1377: LimitSubqueryOutputWalker: fix aliasing of property in OrderBy from MappedSuperclass thanks to @fprochazka
    1395: Fix for DDC-3697 and DDC-3701 thanks to @mpdude
    1399: Fix for DDC-3719. thanks to @boskee
    1441: INSTANCE OF now behaves correctly by including all possible child classes in IN() filtering conditions thanks to @taueres
    1458: [Paginator] Fixed boolean casting thanks to @phansys
    1463: Fixed issue when paginator orders by a subselect expression thanks to @ehimen
    1521: [DDC-2922] Error when new entities are reachable through multiple paths but not all of them are marked cascade-persist thanks to @dhager
    1526: Break on autoloader selected thanks to @zinovyev
    1547: [RFC] fixes result cache setting query caching thanks to @guilhermeblanco
    1549: [RFC] DDC-3697 thanks to @guilhermeblanco
    1555: [RFC] DDC-3979 thanks to @guilhermeblanco
    1559: Entity cache key is built differently on read than on write thanks to @guiwoda
    2947: DDC-2248: Expire result cache functionality not implemented thanks to @doctrinebot
    3247: DDC-2524: Wrong commit order with cascade remove and double association thanks to @doctrinebot
    3468: DDC-2726: EventSubscriber PreUpdate Error Bug? thanks to @doctrinebot
    3528: DDC-2780: IS [NOT] NULL conditions with JOINs thanks to @doctrinebot
    4551: DDC-3715: [GH-1395] Fix for DDC-3697 thanks to @doctrinebot
    4555: DDC-3719: Criteria won't work on non-owning side of many to many collection thanks to @doctrinebot
    4576: DDC-3738: [GH-1409] Added PHPDoc return type false of next method in Hydration/IterableResult thanks to @doctrinebot
    4580: DDC-3741: [GH-1411] Allow null to be passed to setHydrationCacheProfile thanks to @doctrinebot
    4584: DDC-3745: OneToOne identity through foreign entity exception on flush thanks to @doctrinebot
    4630: DDC-3787: [GH-1436] allow ManyToManyPersister to handle identification types thanks to @doctrinebot
    4646: DDC-3800 #1441 INSTANCE OF now behaves correctly by including all possible child classes in IN() filtering conditions thanks to @doctrinebot
    4648: DDC-3802: [GH-1443] Unsigned thanks to @doctrinebot
    4657: DDC-3810: [GH-1450] [DX] Link annotation ref to locking explanation thanks to @doctrinebot
    4668: DDC-3820: [GH-1455] Update ExprTest.php thanks to @doctrinebot
    4717: DDC-3865: [GH-1487] [DDC-3864] Support any ordering of fields in partial object query with embeddable thanks to @doctrinebot
    4752: DDC-3897: [GH-1505] Fixed issue with entity manager when using LockMode::NONE thanks to @doctrinebot
    4781: DDC-3922: [GH-1522] remove indexes overruled by primary key thanks to @doctrinebot
    4802: DDC-3941: Compatibility issue with PHP 7.0 on proxy generation. thanks to @doctrinebot
    4807: DDC-3946: [GH-1533] Fix argument type thanks to @doctrinebot
    4827: DDC-3967: Identifier is cached with wrong type thanks to @doctrinebot
    4835: DDC-3976: [GH-1542] Failing test: Owned side of a oneToMany relation doesn't evict its collection cache thanks to @doctrinebot
    4838: DDC-3979: [GH-1544] DefaultEntityHydrator: Undefined index: targetToSourceKeyColumns thanks to @doctrinebot
    4841: DDC-3982: [GH-1547] [RFC] fixes result cache setting query caching thanks to @doctrinebot
    4846: DDC-3986: [Paginator] Invalid generated query with usage of output walkers thanks to @doctrinebot
    4854: DDC-3993: [GH-1552] Collection cache key is built differently on read than on write thanks to @doctrinebot
    4864: DDC-4000: [GH-1557] Reduce ambiguity in Entities description thanks to @doctrinebot
    4865: DDC-4001: [GH-1558] [RFC] remove indexes overruled by primary key thanks to @doctrinebot
    4867: DDC-4003: [GH-1559] Entity cache key is built differently on read than on write thanks to @doctrinebot
    4868: DDC-4004: [GH-1560] Fix broken links thanks to @doctrinebot
    4870: DDC-4006: ID generator strategy not inherited from embeddable thanks to @doctrinebot
    4871: DDC-4007: [GH-1561] [DDC-4006] Inherit ID generator strategy mapping from embeddables thanks to @doctrinebot
    4872: DDC-4008: [GH-1562] Fix empty expression on PHP 5.4 thanks to @doctrinebot
    4888: DDC-4022: [GH-1574] deduplication of internal UnitOfWork methods thanks to @doctrinebot
    5562: Second Level cache doesn't work properly with OneToOne association and inheritance thanks to @rafrsr
    5590: Fix discriminator column defaults thanks to @billschaller
    5605: UnitOfWork pre update invoke causes some times fatal errors thanks to @sr-amueller
    5622: Mysql 5.7 requires order by clause in select DISTINCT statement (Paginator) thanks to @devolicious
    5638: Ddc 3719 fix and test thanks to @jeancarlomachado
    5668: Many to many criteria fixes thanks to @petitchevalroux
    5680: DDC-2780 - Fixed issue with IS NULL on join aliases thanks to @byonchev
    5684: Custom type ignored by identity generator thanks to @bharley
    5686: Fixed test failing due to changes in AnnotationReader thanks to @mbeccati
    5729: Fix typo thanks to @funivan
    5793: SecondCacheLevel association and inheritance update problem thanks to @mpoiriert
    5808: second-level-cache, entity-hydrator throws exception thanks to @floriansemm
    5834: Fix custom-id-generator XSD class attribute type: s/NMTOKEN/string thanks to @ismailbaskin
    5853: Fix typo thanks to @lcobucci
    5854: Default query cache using wrong object thanks to @lcobucci
    5856: #5854 workaround to avoid populating Second Level Cache from DQL queries with multiple nested DQL aliases thanks to @Ocramius
    5885: Partially reverting #5860 due to type juggling horrors thanks to @Ocramius
    5887: Failing inverse One-to-One relationship using a custom data type thanks to @alexb-uk
    5897: Check for Xcache availability from INI setting thanks to @mikaelz
    5924: Allow empty string identifiers thanks to @Ocramius
    5935: Fix #5684 - Fix mapping on insertion for autoincrement columns with custom types thanks to @mantiz
    5973: This should fix MySQL 5.7 issues caused by ONLY_FULL_GROUP_BY thanks to @wucdbm
    6020: Convert generated id value to its PHP representation. thanks to @renan
    6129: XmlDriver incorrectly parses boolean option values thanks to @kalimatas
    6130: #6129 Added unit test for boolean option values. thanks to @kalimatas
    6142: Fix incompatibility w/ PHP7.2+ thanks to @mbeccati
    6152: Use the correct types for generated ids thanks to @lcobucci
    6217: Handle AssociationCacheEntry identifier thanks to @gadelkareem
    6223: Appends cache namespace when it exists (for L2C regions) thanks to @lcobucci
    6244: Make sure we're using the rootEntityName on all places thanks to @lcobucci
    6251: Add missing group to DDC2660Test.php thanks to @mbeccati
    6274: Fixing #5887 - lazy loading of one-to-one relationship with custom id object thanks to @necsord
    6284: #6217 when hydrating an entity with a composite primary key that is both an EAGER and a LAZY association and also cached, the DefaultQueryCache tries to pass L2 cache implementation detail objects to the UnitOfWork thanks to @gadelkareem
    6287: Fix EntityManagerDecorator tests thanks to @lcobucci
    6303: ObjectHydrator and ArrayHydrator incorrectly hydrate fields of child classes in a JTI when a field name collides thanks to @fullbl
    6304: Check if the discriminator value is null before converting it and setting into rowData during hydration thanks to @fullbl
    6328: DDC-2780 - Fixed issue with IS NULL on join aliases thanks to @lcobucci
    6356: Fix wrong variable name thanks to @gander
    6392: Correct DQL INSTANCE OF to filter all possible child classes thanks to @jean85
    6402: Quote strategy not applied to foreign key columns thanks to @lemartin
    6404: Fix quoting issues related to ticket #6402 thanks to @lemartin
    6416: Fix quoting when using inheritance as well thanks to @lcobucci
    6417: Fix expire result cache thanks to @lcobucci
    6436: Pass the connections parameters for cache key generation thanks to @lcobucci
    6441: Verify that the fileLockRegionDirectory passed to the DefaultCacheFactory cannot be empty thanks to @sensorario
    6460: Getting embeddable should trigger entity initalization thanks to @mkosiedowski
    6462: Fix #6460 - \Doctrine\ORM\Mapping\ClassMetadataInfo::hasField should return true for embedded fields thanks to @mkosiedowski
    6468: Cascade persist order thanks to @1ed
    6485: #5804 Versioning doesn't work with a custom type primary key thanks to @alle
    6491: Fix Mock Implementations. thanks to @ThePixelDeveloper
    6494: Add failing test for #6314 and PR #6356 thanks to @astepin
    6496: #5804 #6485 Versioning doesn't work with a custom type primary key thanks to @astepin
    6639: 2.6 (dev-master at present) excludes all stable versions of symfony/yaml thanks to @asgrim
    6640: #6217 #6284 when hydrating an entity with a composite primary key that is both an EAGER and a LAZY association and also cached, the DefaultQueryCache tries to pass L2 cache implementation detail objects to the UnitOfWork thanks to @Ocramius
    6651: Replacing direct quote model-set schema creation with actually existing model-set setup thanks to @Ocramius
    6652: Correcting the SimpleInsertPerformanceBench duplicate record issues when run with multiple revolutions/iterations thanks to @Ocramius
    6658: Drop explicit conflict with stable symfony/yaml thanks to @Majkl578
    6759: Inverse side of OneToOne is loaded without identifier condition thanks to @janlanger
    6760: #6759 showstopper one-to-one inverse not being loaded with correct identifier restrictions when defining joinColumn thanks to @Ocramius
    6767: Allow association mappings as IDs for joined-table inherited entity thanks to @parent5446

Documentation

    1305: Documentation : fix table prefix with STI thanks to @guillaumerobin
    1341: [doc] Minor fixes and typos thanks to @javiereguiluz
    1355: [Docs] TablePrefix example - Check for being the owning side thanks to @scaytrase
    1358: Update docs for clear-cache commands thanks to @zerocrates
    1360: Fixed misleading typo in Embeddables tutorial thanks to @stedekay
    1362: Readme: badges for 2.5 added; 2.3- dropped thanks to @TomasVotruba
    1366: [Documentation] typo fixes thanks to @shieldo
    1368: Readme: coverage badge for 2.4 added thanks to @TomasVotruba
    1379: Added missing 'new' keyword for logger instantiation thanks to @holtkamp
    1385: duplicated param in phpdoc thanks to @TomasVotruba
    1386: PersisterException: missing license added thanks to @TomasVotruba
    1390: Document the ChainCache class thanks to @deviantintegral
    1396: [Documentation] Initializing embeddables doc thanks to @padam87
    1404: Fix PHPDoc typo thanks to @stephan281094
    1408: [doc] Remove unused variable from sample code thanks to @baileylo
    1429: Update events.rst to reflect behaviour of preUpdate thanks to @hallabro
    1442: Corrected bad class reference in "Adding own commands" thanks to @elazar
    1444: Missing opening tags added in one of the tutorials thanks to @cezarykluczynski
    1462: Add a note to documentation for transactional()'s return values thanks to @dhager
    1473: Docs fix ref and title thanks to @ilyar
    1483: Fix typo thanks to @longkey1
    1485: Changed references from PHP6 to PHP7 thanks to @hasumedic
    1496: Fix invalid return type in docblock thanks to @dagio
    1497: Update DateTime cookbook code thanks to @PowerKiKi
    1500: Update docs dependency install script and readme to target Ubuntu 14.04 thanks to @billschaller
    1504: Updated docs for basic mapping thanks to @phansys
    1506: Fix variable reference in phpdoc of ClassMetadataInfo thanks to @tobion
    1511: Fix class name: AbstractCache -> CacheProvider thanks to @bluem
    1516: Clarify @DiscriminatorMap requirement thanks to @brabeji
    1520: Updated year range thanks to @aqnouch
    1523: Documentation and case fixes in QueryBuilder thanks to @BenMorel
    1528: Fixed typo in 9.6.7 of docs thanks to @sprain
    1534: Use capital letter at the beginning of a sentence thanks to @senkal
    1536: Minor - Fix PHP Doc - Update Expr.php thanks to @angelfqc
    1554: Fix a documentation error in the EntityManagerInterface#transactional() return value thanks to @tai2
    1566: Fix typos in DQL doc thanks to @BenMorel
    1808: DDC-1201: DQL Example about count(*) related entity is wrong thanks to @doctrinebot
    2190: DDC-1555: Reference. 8 Work. with obj. Making "see "Transitive Persistence"" as link thanks to @doctrinebot
    4488: DDC-3659: [GH-1366] [Documentation] typo fixes thanks to @doctrinebot
    4493: DDC-3663: [GH-1368] Readme: coverage badge for 2.4 added thanks to @doctrinebot
    4496: DDC-3666: [GH-1371] Readme: drop "Downloads" link thanks to @doctrinebot
    4514: DDC-3682: [GH-1379] Added missing 'new' keyword for logger instantiation thanks to @doctrinebot
    4528: DDC-3695: [GH-1385] duplicated param in phpdoc thanks to @doctrinebot
    4531: DDC-3698: [GH-1386] PersisterException: missing license added thanks to @doctrinebot
    4539: DDC-3704: [GH-1390] Document the ChainCache class thanks to @doctrinebot
    4566: DDC-3729: [GH-1404] Fix PHPDoc typo thanks to @doctrinebot
    4650: DDC-3804: [GH-1444] Missing opening tags added in one of the tutorials thanks to @doctrinebot
    4677: DDC-3829: [GH-1462] Add a note to documentation for transactional()'s return values thanks to @doctrinebot
    4696: DDC-3846: [GH-1473] Docs fix ref and title thanks to @doctrinebot
    4705: DDC-3854: [GH-1483] fix typo thanks to @doctrinebot
    4708: DDC-3857: [GH-1485] Changed references from PHP6 to PHP7 thanks to @doctrinebot
    4736: DDC-3882: [GH-1497] Update DateTime cookbook code thanks to @doctrinebot
    4742: DDC-3888: [GH-1500] Update docs dependency install script and readme to target Ubuntu 14.04 thanks to @doctrinebot
    4751: DDC-3896: [GH-1504] Updated docs for basic mapping thanks to @doctrinebot
    4753: DDC-3898: [GH-1506] Fix variable reference in phpdoc of ClassMetadataInfo thanks to @doctrinebot
    4768: DDC-3910: [GH-1511] Fix class name: AbstractCache -> CacheProvider thanks to @doctrinebot
    4773: DDC-3915: [GH-1516] Clarify @DiscriminatorMap reqirement thanks to @doctrinebot
    4779: DDC-3920: [GH-1520] Updated year range thanks to @doctrinebot
    4787: DDC-3928: [GH-1523] Documentation and case fixes in QueryBuilder thanks to @doctrinebot
    4796: DDC-3936: [GH-1528] Fixed typo in 9.6.7 of docs thanks to @doctrinebot
    4809: DDC-3948: [GH-1534] Use capital letter at the beginning of a sentence thanks to @doctrinebot
    4819: DDC-3957: [GH-1536] Minor - Fix PHP Doc - Update Expr.php thanks to @doctrinebot
    4856: DDC-3995: [GH-1554] Fix a documentation error in the EntityManagerInterface#transactional() return value thanks to @doctrinebot
    4878: DDC-4013: [GH-1566] Fix typos in DQL doc thanks to @doctrinebot
    5572: Guess missing words thanks to @greg0ire
    5584: Fix broken links to blog post. thanks to @harikt
    5585: Replacing the hardcoded year with a function call thanks to @mikesimonson
    5591: Removing 2.4 from README thanks to @Ocramius
    5596: Wrong $saveMode parameter documentation in SchemaTool::updateSchema thanks to @dcb
    5597: Fix documentation of schema tool's "save mode" thanks to @deeky666
    5612: [Doc] Is it a typo? thanks to @issei-m
    5620: "Class 'Doctrine\Tests\OrmFunctionalTestCase' not found" when trying to run PHPUnit thanks to @stanleysathler
    5623: Update tests README thanks to @jean85
    5667: Add missing @throws tags thanks to @jeroendedauw
    5670: Add precision on the time units thanks to @mikesimonson
    5675: Fixed broken links on getting-started tutorial thanks to @jeancarlomachado
    5677: Updating the Getting Started guide's documentation thanks to @natechicago
    5734: Update tools.rst thanks to @amerryma
    5736: Fix PHP syntax error in composite-primary-keys.rst thanks to @guilliamxavier
    5771: Remove note on findBy not supporting entity thanks to @teohhanhui
    5786: [documentation] Missing Embedded and Embeddable anotations in annotations reference index thanks to @maks3w
    5787: Fix bug: orderBy documentation thanks to @ibet7o
    5805: Fix typo in documentation thanks to @bornfreee
    5813: Add embedded and embeddable annotations in annotations reference index thanks to @jeancarlomachado
    5817: Added missing - in the in getting started docs. thanks to @primozcigler
    5837: Use constant consistently thanks to @foaly-nr1
    5873: Update query-builder.rst thanks to @vudaltsov
    5882: PHP 5.4 compatibility issues thanks to @ic1011
    5891: Fix typo in PHPDoc block of QueryBuilder.php thanks to @chrisp1tv
    5892: #5882 recommend using latest stable PHP version in the getting started guide thanks to @breiteseite
    5898: Typo thanks to @radmax
    5902: Fixed typo (serves => servers) thanks to @holtkamp
    5918: Make setSQL and setDQL function calls case-sensitive. thanks to @tonynelson19
    5931: Clarify language regarding ArrayCollections. thanks to @bitwombat
    5942: Add @CustomIdGenerator to documentation thanks to @erikvv
    5947: Missing ClassMetadataExporter instantiation in the reverse engineering code samples thanks to @alexryderwhytewaters
    5948: Update association-mapping.rst to ease understanding of what associations mean thanks to @michal-sk
    5971: Wrong return type of getResult() thanks to @giginos
    5972: Wrong return type of getResult() thanks to @giginos
    6013: Documentation - Fix typo thanks to @guhelski
    6025: Fix typo in batch-processing doc thanks to @ywarnier
    6063: Fix PHP version in readme. thanks to @kormik
    6065: Update Autoloader namespace [docs] thanks to @adiq
    6070: Update events.rst thanks to @alexndlm
    6080: Fixed typo + added link thanks to @thomaslandauer
    6087: Fix namespace thanks to @chihiro-adachi
    6089: Remove duplicated enum type comment from declaration. thanks to @damour
    6092: Updated a link (hopefully :-) thanks to @thomaslandauer
    6095: Fixed typo in annotations reference thanks to @mschroeder
    6101: Add license checker to the build thanks to @malukenho
    6120: Fixed typos regarding the strategy for composite keys (xml mapping) thanks to @mschroeder
    6138: Added examples for version column in the xml and yml formats thanks to @whiteeagle88
    6145: Improving the documentation of enums as discriminators test thanks to @lcobucci
    6171: Include example of a cascaded "persist" operation thanks to @thomaslandauer
    6179: Minor fixes to the 'getting started' page thanks to @biggianteye
    6197: getSingleScalarResult() returns NULL when the query yields no results thanks to @BenMorel
    6207: Documentation: Fixes missing namespaces on class call thanks to @gabidavila
    6212: Fix wrong DQL example thanks to @malukenho
    6215: Added link to Transitive Persistence thanks to @malukenho
    6219: Complete re-write of "Transitive persistence / Cascade Operations" thanks to @thomaslandauer
    6220: Fix annotations thanks to @enumag
    6227: Minor formatting improvements thanks to @thomaslandauer
    6250: Note on Entity listeners thanks to @johndodev
    6257: Adding a note about the Doctrine\ORM\QueryBuilder#addCriteria() method thanks to @weaverryan
    6260: Document the Custom option of the generated value annotation thanks to @mikesimonson
    6262: Fix a link to a ref in another page thanks to @mikesimonson
    6268: Fix annotation thanks to @enumag
    6285: Fix typos and wording in NamingStrategy documentation thanks to @svencan
    6326: [Documentation] Add column check-option to documentation thanks to @senseexception
    6386: doc: fixed class name thanks to @chihiro-adachi
    6395: Updated broken links thanks to @yannickl88
    6399: Fix incorrect YAML example for versioning a field. thanks to @neobyteuk
    6400: Fix incorrect YAML datetime version field. thanks to @neobyteuk
    6410: Minor typo naming strategy documentation thanks to @PowerKiKi
    6446: Update theme submodule thanks to @eibt
    6456: Fixes and clarifications to Association Mapping document thanks to @bitwombat
    6466: Update QueryBuilder docblock to reflect correct type of bound parameter type thanks to @fmagnan
    6501: Clarify the impact of changing the fetch mode thanks to @mpdude
    6508: [Doc] Fix links to api doc in the second level cache documentation page thanks to @magnetik
    6545: Fix newline in annotation example in documentation thanks to @landerstraeten
    6562: Make minor English fixes. thanks to @bitwombat
    6572: Add additional detail and clarifications on SELECT thanks to @bitwombat
    6579: Document string as possible parameter type for Expr#between() thanks to @nek-
    6588: Updating docs to support for APCu as a cache driver thanks to @reypm
    6632: The documentation does not mention the nullable default value for @column thanks to @kwadz
    6636: Mention the nullable default value for @column thanks to @kwadz
    6642: Fixed typo in DQL docs thanks to @radmax
    6644: fixed typo into native-sql documentation thanks to @alessandrominoccheri
    6685: Updating Query#$&#95;maxResults to allow for null (no limit) thanks to @votemike
    6690: Clarify association mapping language thanks to @bitwombat
    6695: Update table prefix docs thanks to @wshafer
    6715: Promote nullable types from PHP 7.1 thanks to @PowerKiKi
    6746: [DOCS] Emphasize that Embeddable can only contain simple fields thanks to @malarzm
    6749: Use EntityManagerInterface in attribute's docblock to match with constructor thanks to @konstantinkuklin
    6755: EntityManager::getReference() can return null thanks to @BenMorel
    6764: fixed little typo inside documentation thanks to @alessandrominoccheri
    6766: Moved explanation out of PHP-Codeblock... thanks to @thomaslandauer
    6778: Clarify docs for embedded and embeddable. thanks to @stevepetcu
    6788: [Docs] Type::convertToDatabaseValue is always called thanks to @kejwmen
    6800: Fix some grammar and outdated information in docs thanks to @erikjson
    6805: [Docs] Corrected NamingStrategy demo code to match example thanks to @yesdevnull
    6894: README: Fix PHP version thanks to @Majkl578
    6898: UPGRADE: Added method parenthesis, fixed method name thanks to @Majkl578


v2.5.14 - Dec 16, 2017

This version backports bugfixes related to the generation of queries with joins and configuration of the result set cache profile of a query.

Total issues resolved: 2

    6748: Fix missing null check on AbstractQuery#setResultCacheProfile() thanks to @KonstantinKuklin
    6812: Fix syntax error when join unrelated entity with discriminator entity thanks to @Deltachaos


v2.5.13 - Nov 27, 2017

This release fixes several small issues found on the next minor release of the ORM (v2.6.0) that we could easily backport to v2.5.x.

Total issues resolved: 13

    5904: Fixed overwriting explicit cache namespace thanks to @JanJakes
    6167: Fails to insert to a PostgreSQL master-slave config due to SequenceGenerator(NEXTVAL) issues thanks to @mkurzeja
    6168: Fixed #6167 - Forced SELECT NEXTVAL to be run on master thanks to @mkurzeja
    6682: SequenceGenerator crashes with non-numeric value encountered when using XML Driver thanks to @alextech
    6683: Supply default values for optional values in sequence mapping if omitted by driver. thanks to @alextech
    6699: setParameter issue when mixing :name and ?0 syntax thanks to @Seb33300
    6705: Fix parameter name comparison in AbstractQuery regarding different types (fixes #6699) thanks to @Majkl578
    6740: Fix operator when using criteria on ManyToMany thanks to @mduplouy
    6810: BasicEntityPersister::count() return type contract violation in 2.5.x branch thanks to @vkurdin
    6818: BasicEntityPersister::count() return type fix thanks to @vkurdin
    6821: Make test suite compatible with PHP 7.2 thanks to @remicollet
    6848: Fixed overwriting explicit cache namespace thanks to @lcobucci
    6852: Backport #6167 from 2.6 to 2.5.x branch thanks to @gigi


v2.5.12 - Oct 23, 2017

This release allows Doctrine to work with Symfony 4.

Total issues resolved: 1

    6733: Allow Symfony 4 thanks to @fabpot


v2.5.11 - Sep 18, 2017

This release reduces the version constraints on the doctrine/instantiator dependency,
effectively allowing any doctrine/instantiator version to be installed.

Total issues resolved: 1

    6635: Allow installation of doctrine/instantiator:^1.0.1 thanks to @davidbarratt


v2.5.10 - Aug 18, 2017

This release fixes an issue related to a long standing issue with how
PHP handles loading of external XML entities (https://bugs.php.net/bug.php?id=62577).

Total issues resolved: 2

    3788: DDC-3020: simplexml_load_file(): I/O warning: failed to load external in XmlDriver thanks to @doctrinebot
    6633: XmlDriver: Avoid PHP bug #62577 by avoiding simplexml_load_file() thanks to @apapsch


v2.5.9 - Aug 16, 2017

This release fixes a couple regression introduced by
v2.5.7 and v2.5.8.

Specifically, AbstractHydrator#hydrateAll() was raising
E_NOTICE errors due to it not being registered with the
EventManager, yet trying to remove itself from the
registered listeners. #6623

In addition to that, having embeddable final classes
would cause errors being raised while trying to generate
proxies. The ORM will no longer attempt to generate proxies
for embeddables. #6625

Total issues resolved: 3

    6623: Ensure that AbstractHydrator#hydrateAll() detaches the hydrator from the event manager thanks to @echo511
    6625: Proxy generation for embedded/transient classes thanks to @bendavies
    6626: #6625 Skip proxy generation for embeddable classes thanks to @issei-m


v2.5.8 - Aug 13, 2017

This release solves a bug introduced while backporting
#6464 and #6475.
Specifically, a dangling undefined variable remained in the
code, causing some SqlWalker functionality to misbehave.
The undefined variable wasn't noticed due to it being placed
in an empty() expression.

Total issues resolved: 1

    6621: Fixed usage of undefined variable in empty() expression in SqlWalker thanks to @Powerhamster


v2.5.7 - Aug 11, 2017

This release fixes a number of bugs detected in the current stable
release of the ORM.

This patch introduces compatibility with Doctrine DBAL 2.6.x. #6580

The most critical issue being fixed is a bug
in Doctrine\ORM\PersistentCollection, causing duplicate data
to be persisted when a collection is both marked as initialized
and dirty, and more entries are added to it via
the Doctrine\Common\Collections\Collection#add()
API. #6613 #6614
#6616

The return value of Doctrine\ORM\PersistentCollection#removeElement()
was sometimes an object or null, causing some applications to crash when PHP is run within the context ofdeclare(strict_types=1);` #6550

Memory leak issues with the hydrator process were fixed: the
hydrator object was never being garbage collected due to it
being registered with a Doctrine\Common\EventManager instance
to listen for the Doctrine\ORM\Events::onClear event. #1515

The Doctrine\ORM\Tools\Pagination\CountOutputWalker was producing
invalid SQL for queries containing a GROUP BY clause. #6243

The SQL generated for a DQL query containing a JTI (Joined Table
Inheritance) selection and a WITH clause applied to a JOIN
condition was invalid on PostgreSQL. #6475

The Doctrine\ORM\Tools\Console\MetadataFilter was not detecting
all metadata matching the filter regular expression. #5715

The Doctrine\ORM\Tools\SchemaTool was raising notices due to
invalid lookup for a discriminator column length, which may
not be defined in all mappings. #5798

Total issues resolved: 18

    1515: DDC-3146 Remove onClear event listener from abstract hydrator in cleanup function, otherwise causing hydrator GC to not kick in thanks to @emiel-silverstreet
    1541: Type annotation correction in ResultSetMappingBuilder#addJoinedEntityFromClassMetadata() $relation (should be string) thanks to @aleeeftw
    3925: DDC-3146: Hydrator memory leak when using iterator thanks to @doctrinebot
    4772: DDC-3914: #1515 DDC-3146 Remove event listener from abstract hydrator in cleanup function thanks to @doctrinebot
    5715: Fix MetadataFilter regression after #507 (#2815) not testing filters after first one thanks to @guilliamxavier
    5745: PersistentCollection#removeElement() returns object or null instead of boolean thanks to @holtkamp
    5798: Fix undefined index for discriminator column length attribute in SchemaTool thanks to @sergeyfedotov
    6243: Fix CountOutputWalker for queries containing a GROUP BY clause, which was producing invalid SQL thanks to @enumag
    6362: Undefined Property error in ObjectHydrator when using JOIN WITH thanks to @SirWaddles
    6367: Correct hydration of resultsets coming from DQL queries where the root of the selection is aliased and also the root of an inheritance thanks to @SirWaddles
    6381: Corrected LoadClassMetadataEventArgs @method annotations to reflect actual returned types thanks to @ElisDN
    6464: Query builder yields invalid SQL with JOINED inheritance type on PostgreSQL thanks to @stesie
    6475: Fix invalid sql generated for CTI JOINs when INNER JOIN'ing with a WITH clause thanks to @stesie
    6550: Fix return value of PersistentCollection#removeElement() for extra-lazy collections: should be bool thanks to @alcaeus
    6580: Allow DBAL 2.6 and common 2.8 to be installed thanks to @Tobion
    6613: There is the fail "UNIQUE constraint failed" with a LAZY collection thanks to @Sysaninster
    6614: UNIQUE constraint failed errors when manipulating a LAZY collection and calling toArray() on it thanks to @Sysaninster
    6616: #6613 #6614 correct handling of new elements added to an initialized (yet dirty) collection thanks to @Ocramius


v2.5.6 - Dec 19, 2016

This release relaxes doctrine/common requirements
in order to allow installation of versions that support PHP 7.1 features in proxy class
generation. Please note that a similar requirement relaxation still needs to be applied to
doctrine/dbal in order to allow installation of
the latest doctrine/common versions. #6156

This version also backports some fixes around the eviction of the second level cache entries
of inverse side associations in one-to-many - many-to-one mappings. #6159

Further fixes were applied in order to have child classes in inheritance mapping share the
same timestamp region when the second level cache is enabled. #6028

Also, Doctrine\ORM\EntityManager#merge() now triggers Doctrine\ORM\Events::prePersist
listeners with the merged entity state whenever an internal Doctrine\ORM\UnitOfWork#persist()
call is implied. #6177.

Total issues resolved: 8

    5570: Fix PrePersist EventListener when using merge instead of persist
    6028: Make child entity share the timestamp region with parent class
    6110: Clear $this->collection even when empty, to reset keys
    6156: Allow doctrine/common 2.7
    6159: #5821 Backport #1551 - Fixed support for inverse side second level cache
    6174: Merging a new entity with PrePersist event make changes in callback not be considered
    6177: Fix #6174 #5570: merging new entities should also trigger prepersist lifecycle callbacks with merged entity data
    6178: Backport #6177 - fix #6174 #5570: merging new entities should also trigger prepersist lifecycle callbacks with the merged data


v2.5.5 - Sep 10, 2016

This release includes a big amount of bugfixes.

Specifically, following issues were fixed:

    Embeddable classes are now allowed in inheritance trees 4097
    Removed some object hash collisions caused by entity merging 1465
    Allowed usage of mathematical operators in DQL HAVING clauses 5598
    Fixed cloning of proxies with private properties at multiple inheritance levels 5755
    Entity insertions are correctly cleared when a specific entity is to be cleared 5849
    Corrected hydration of fetch-joins that use composite keys 5762
    Metadata exporters now only export the owning side metadata in a one-to-one relation 5858
    Corrected hydration of JTI entities when NULL is retrieved for a simple_array or json_array field 5989
    Correctly expire L2 cache query caches, based on entity region cache timestamp 6001

Total issues resolved: 18

    1465: spl_object_hash conflict on Merge
    4097: DDC-3303: @ORM\Embedded does not work with extending classes
    4277: DDC-3467: Embeddable in inheritance must currently be protected
    5598: HAVING clause with variable and *, / math operators
    5599: Fix #5598 issue with /, * in DQL not translating query components properly
    5689: Avoid conflicts due to spl_object_hash
    5755: Error on entity clone for MappedSuperclass fields
    5762: fetch join using composite key on join entity fails to hydrate correctly
    5768: Fixes #5755 - Parent class fields are not cloned
    5776: add functional test and bug fix for issue #5762
    5849: UnitOfWork#clear() doesn't clear entityInsertions when entityName is passed
    5850: Clear UnitOfWork#$entityInsertions for specific entityName
    5858: Exporters should only inspect joinColumns for owning side in bi-directional OneToOne
    5867: Allow the usage of embedded objects on parent classes
    5975: Fix hydration after fetch join on entity with composite primary key
    5989: SimpleObjectHydrator produces wrong values with inheritance table and simple array type
    6001: Make second level cache query cache rely on entity region timestamp
    6004: Fix hydration in a joined inheritance with simple array or json array


v2.5.4 - Jan 05, 2016

    1568: Identifier is cached with wrong type


v2.5.3 - Dec 25, 2015

    1572: Target entity resolver for DQL
    1573: Merge entity associated to versioned entity
    4884: DDC-4019: Proxy generator is not including PHP7 return type hints
    5547: Correcting minor test case incompatibility with XDebug 2.4.x


v2.5.2 - Nov 23, 2015

Bug

    [DDC-3677] - [GH-1375] DDC-3671 prevent duplicate unique index
    [DDC-3899] - [GH-1507] Fixed wrong property name
    [DDC-3908] - [GH-1510] Fix cache storage related test issues (due to doctrine/cache 1.5.0 changes)
    [DDC-3911] - [GH-1512] Backport of "LimitSubqueryOutputWalker: fix aliasing of property in OrderBy from MappedSuperclass"
    [DDC-3973] - [GH-1540] [DDC-3711] Correct Error on manyToMany with composite primary key + add Tests

Documentation

    [DDC-3938] - [GH-1529] Update Upgrade.md after minor bc break in 2.5.1

Improvement

    [DDC-3978] - [GH-1543] Allow symfony 3.0 components on 2.5


v2.5.1 - Aug 31, 2015

v2.5.0 - Apr 02, 2015

v2.5.0-RC2 - Mar 31, 2015

    DDC-3643 #1352 Fix EntityGenerator RegenerateEntityIfExists logic
    DDC-3645 #1353 DDC-3637 #1347 DDC-3642 #1351 Paginator logic fixes
	(complex queries/sorting/db support)


v2.5.0-RC1 - 25 Mar 2015

    DDC-3632 #1345 Fix crashes in ConvertMappingCommand and GenerateEntitiesCommand when using entities with joined table inheritance
    DDC-3634 #1346 Fix: generated IDs are converted to integer even when they are big integers
    DDC-3630 DDC-3621 #1343 Support embeddables in partial object query expression
    DDC-3623 DDC-3629 #1337 #1342 Paginator functional tests and sorting corrections
    DDC-2224 DDC-3625 #1339 Honor convertToDatabaseValueSQL() in DQL query parameters and caches


v2.5.0-beta1 - 20 Mar 2015

    DDC-3452 Embeddables Support for ClassMetadataBuilder
    DDC-3551 Load platform lazily in ClassMetadataFactory to avoid database connections.
    DDC-3258 Improve suport for composite primary keys and assocations as keys.
    DDC-3554 Allow to recreate DQL QueryBuilder from parts.
    DDC-3461 Allow setting association as primary key in ClassMetadataBuilder API with makePrimaryKey().
    DDC-3587 Added programmatical support to define indexBy on root aliases.
    DDC-3588 Add support for seconds in DATE_ADD DQL function.
    DDC-3585 Fix instantiation of nested embeddables.
    DDC-3607 Add support for orphan removal in ClassMetadataBuilder/AssocationBuilder
    DDC-3597 Add support for embeddables in MappedSuperclasses.
    DDC-3616 Add support for DateTimeImmutable in Query parameter detection.
    DDC-3622 Improve support for objects as primary key by casting to string in UnitOfWork.
    DDC-3619 Update IdentityMap when entity gets managed again fixing spl_object_hash collision.
    DDC-3608 Fix bug in EntityGenerator to XML/YML with default values.
    DDC-3590 Fix bug in PostgreSQL with naming strategy of non-default schema tables.
    DDC-3566 Fix bug in Second-Level Cache with association identifiers.
    DDC-3528 Have PersistentCollection implement AbstractLazyCollection from doctrine/collections.
    DDC-3567 Allow access to all aliases for a QueryBuilder.


v2.5.0-alpha2 - 28 Jan 2015

    DDC-3517 GH-1265 Fix error undefined index "targetEntity"
    DDC-3516 GH-1264 Add Changelog/Migration to 2.5 documentation chapter.
    DDC-3520 DDC-3521 GH-1269 self-update composer before install
    DDC-3526 GH-1273 Incorrect @throws doc. in getSingleScalarResult
    DDC-3465 GH-1232 Explicit example of partial indexes
    DDC-3300 DDC-3503 GH-1130 GH-1232 Resolve target entity also in discriminator map (allows interfaces and custom names in discriminator map)
    DDC-3378 GH-1176 Support merging entities with composite identities defined through to-one associations
    DDC-3533 GH-1279 Fixed typos and grammar in the second level cache documentation
    DDC-3343 DDC-3536 DDC-3544 GH-1281 GH-1288 GH-1169 Entities should not be deleted when using EXTRA_LAZY and one-to-many
    DDC-3538 DDC-3519 GH-1283 GH-1267 Reverted #1220 <https://github.com/doctrine/doctrine2/pull/1220>_, fixed order in pagination logic
    DDC-2704 DDC-3524 GH-1272 merge inherited transient properties - merge properties into uninitialized proxies
    DDC-3346 DDC-3531 DDC-3534 GH-1280 GH-1277 fixed findOne* operations when using a EAGER *-to-many association
    DDC-3541 GH-1286 Removing XDebug from non-coverage builds
    DDC-3546 GH-1289 Improve test suite performance


v2.5.0-alpha1 - 18 Jan 2015

Issue summary:
New Feature

    [DDC-93] - It would be nice if we could have support for ValueObjects
    [DDC-1149] - Optimize OneToMany and ManyToMany without join
    [DDC-1216] - A way to mark an entity to always use result cache. Like @UseResultCache class annotation.
    [DDC-1247] - Implement AnnotationDriver::addExcludePath
    [DDC-1563] - Result cache for repository queries
    [DDC-2021] - Array Data in Member OF
    [DDC-2773] - [GH-835] Value objects (Based on #634)
    [DDC-2959] - [GH-937] Extra-lazy for containsKey on collections
    [DDC-3117] - [GH-1027] Support for Partial Indexes for PostgreSql and Sqlite
    [DDC-3161] - [GH-1054] SQLFilters enahancements
    [DDC-3186] - [GH-1069] added method to be able to reuse the console application
    [DDC-3231] - [GH-1089] Entity repository generator default repository
    [DDC-3385] - [GH-1181] Support fetching entities by aliased name
    [DDC-3462] - [GH-1230] Allow dumping SQL query when passing DQL on cli

Bug

    [DDC-1624] - Locking CTI doesnt work on SQL Server
    [DDC-2310] - Recent changes to DBAL SQL Server platform lock hinting breaks ORM SqlWalker in DQL queries with joins
    [DDC-2352] - [GH-615] Update SqlWalker.php
    [DDC-2372] - [GH-632] entity generator - ignore trait properties and methods
    [DDC-2504] - [GH-696] extra lazy joined test
    [DDC-2559] - [GH-728] Color message like the update tools
    [DDC-2561] - [GH-729] add missing hint about lifecycle callback
    [DDC-2562] - [GH-730] To avoid "SpacingAfterParams" error with PHPCS Symfony2 coding standard
    [DDC-2566] - [GH-732] Update working-with-associations.rst
    [DDC-2568] - [GH-733] Update Parser.php
    [DDC-2572] - ResolveTargetEntityListener does not work as documented.
    [DDC-2573] - [GH-735] Fix proxy performance test
    [DDC-2575] - Hydration bug
    [DDC-2580] - [GH-739] Fix DDC-2579
    [DDC-2581] - [GH-740] Synchronized support of FilterCollection with ODM by adding missing method
    [DDC-2584] - [GH-743] Added coverage to DDC-2524. Updated DDC-1719 to fix related DBAL bug.
    [DDC-2588] - [GH-745] Update basic-mapping.rst
    [DDC-2591] - [GH-747] fix some file mode 755->644
    [DDC-2592] - [GH-748] Add hour to DATE_ADD and DATE_SUB
    [DDC-2603] - [GH-751] Added coverage for querying support during postLoad.
    [DDC-2604] - [GH-752] ORM side fixes.
    [DDC-2616] - [GH-759] Fixed out of sync code examples in getting-started.rst
    [DDC-2624] - ManyToManyPersister fails to handle cloned PeristentCollections
    [DDC-2652] - [GH-777] Fixed typo in mapping documentation
    [DDC-2653] - [GH-778] Fixed typo in property mapping
    [DDC-2654] - [GH-779] Fixed grammar in custom data types
    [DDC-2656] - [GH-780] [DCC-2655] Don't let getOneOrNullResult throw NoResultException
    [DDC-2668] - DQL TRIM function is not converted into TRIM SQL correctly
    [DDC-2673] - [GH-785] Update dql-custom-walkers.rst
    [DDC-2676] - [GH-786] Minor updates while reading the basic-mapping page
    [DDC-2678] - [GH-787] Update DDC719Test.php to be compatible with MsSQL
    [DDC-2681] - [GH-790] HHVM compatibility: func_get_args
    [DDC-2682] - [GH-791] Implemented "contains" operator for Criteria expressions
    [DDC-2683] - [GH-792] [DDC-2668] Fix trim leading zero string
    [DDC-2689] - Doctrine ORM test suite failing on MySQL
    [DDC-2690] - Doctrine ORM test suite failing on PostgresSQL
    [DDC-2696] - [GH-795] Update query-builder.rst
    [DDC-2699] - [GH-797] CS fixes
    [DDC-2700] - [GH-798] Identifier can be empty for MappedSuperclasses
    [DDC-2702] - [GH-799] remove unused test case
    [DDC-2706] - [GH-801] Update SqlWalker.php fixed wrong GROUP BY clause on SQL Server platform
    [DDC-2707] - [GH-802] Respect unsigned fields when tables get converted to entities.
    [DDC-2711] - [GH-803] Appended newline to (newly) generated files for PSR2 compatibility
    [DDC-2716] - [GH-808] Second level cache
    [DDC-2718] - [GH-809] Fix DDC-1514 test
    [DDC-2720] - [GH-811] Update SingleScalarHydrator error message
    [DDC-2722] - [GH-812] [Doc] add direct links to dbal and dql documentation
    [DDC-2728] - [GH-815] Remove unused use statement
    [DDC-2732] - [GH-816] Options not respected for ID Fields in XML Mapping Driver
    [DDC-2737] - [GH-817] Removed "minimum-stability" : "dev" from composer.json
    [DDC-2738] - [GH-818] Clarified tutorial context in section introducing `orm:scehma-tool:*` commnads
    [DDC-2740] - [GH-819] Fixes a Fatal Error when using a subexpression in parenthesis
    [DDC-2741] - [GH-820] Added support for field options to FieldBuilder
    [DDC-2750] - [GH-822] DDC-2748 DQL expression "in" not working with Collection
    [DDC-2753] - [GH-824] s/PostgreSQLPlatform/PostgreSqlPlatform/
    [DDC-2757] - Manual transcation handling not possible when transaction fails, documentation gives wrong example
    [DDC-2759] - ArrayHydration: Only first entity in OneToMany association is hydrated
    [DDC-2760] - [GH-827] Added a failing test case for DDC-2759.
    [DDC-2764] - An orderBy on Criteria leads to DQL semantical error
    [DDC-2765] - [GH-830] [DDC-2764] Prefix criteria orderBy with rootAlias
    [DDC-2769] - [GH-832] Added "readOnly: true" to YAML reference
    [DDC-2771] - [GH-834] Add example use of repositoryClass in YAML
    [DDC-2774] - [GH-836] Update annotations-reference.rst
    [DDC-2775] - Bug with cascade remove
    [DDC-2782] - [GH-842] Added EntityManager query creation tests
    [DDC-2790] - [GH-845] Don't compute changeset for entities that are going to be deleted
    [DDC-2792] - [GH-846] joinColumn is not required in manyToMany
    [DDC-2798] - [GH-849] Error with Same Field, Multiple Values, Criteria and QueryBuilder
    [DDC-2799] - [GH-850] Event listener to programmatically attach entity listeners.
    [DDC-2811] - [GH-854] fix relative path to doctrine/common
    [DDC-2812] - [GH-856] Fix dependency for tests/Doctrine/Tests/ORM/Functional/ReferenceProxyTest.php
    [DDC-2827] - [GH-864] Updated parser to support aggegrate functions in null comparisons
    [DDC-2831] - [GH-866] Mentioning the 'refresh' cascading property in the documentation list
    [DDC-2843] - SchemaTool update SQL always contains queries to set default value on columns, even if they haven't changed.
    [DDC-2847] - [GH-871] XCache cannot be flushed on the CLI -> for pretty much the same reason as APC
    [DDC-2853] - [GH-873] Try running unit tests on HHVM
    [DDC-2855] - [GH-875] Adding tests that confirm that DDC-2845 is fixed
    [DDC-2856] - [GH-876] Fixing wrong key for allowing HHVM failures
    [DDC-2862] - When update cached entitiy, entity lost OneToOne relationship
    [DDC-2866] - [GH-883] [DDC-2862] Fix non initialized association proxy
    [DDC-2867] - [GH-884] [SLC] Fix cache misses using one-to-one inverse side
    [DDC-2869] - [GH-886] [DDC-1256] Fix applying ON/WITH conditions to first join in Class Table Inheritance
    [DDC-2875] - [GH-890] [DBAL-563] Add general IDENTITY generator type support for sequence emulating platforms
    [DDC-2876] - [GH-891] Allow to not generate extra use
    [DDC-2878] - [GH-893] autoGenerate arg from bool to int
    [DDC-2880] - [GH-894] Fix typos - QueryBuilder
    [DDC-2884] - [GH-896] Ensure <cascade/> elements preceed <join-columns/>
    [DDC-2885] - [GH-897] Respected 'inheritanceType' at Entity level
    [DDC-2889] - [GH-900] Fix connection mock fetchColumn signature
    [DDC-2890] - Paginator generates invalid sql for some dql with setUseOutputWalkers(false) and $fetchJoinCollection = true
    [DDC-2903] - [GH-906] removed erroneous tip
    [DDC-2907] - [GH-907] [DDC-1632] OneToMany Fetch eager
    [DDC-2908] - [GH-908] [DDC-2862] Fix lazy association load
    [DDC-2913] - [GH-909] Fix DatabaseDriverTest on SQL Server
    [DDC-2914] - [GH-910] [DDC-2310] Fix SQL generation on table lock hint capable platforms
    [DDC-2916] - [GH-911] fix foreach coding style
    [DDC-2919] - LockMode::NONE evaluation inconsistencies in ORM
    [DDC-2921] - [GH-912] Avoid PersistentCollection::isEmpty() to fully load the collection.
    [DDC-2931] - OneToOne self-referencing fails when loading referenced objects
    [DDC-2933] - [GH-917] DDC-2931
    [DDC-2934] - [GH-918] Fix use of function in OrderBy
    [DDC-2935] - [GH-919] tests for DDC-2890
    [DDC-2937] - [GH-920] SingleScalarHydrator reports ambiguous error.
    [DDC-2943] - Paginator not work with second level cache in Doctrine 2.5
    [DDC-2946] - [GH-926] Feature/console em helper interface
    [DDC-2947] - [GH-927] s/EntityManager/EntityManagerInterface/ in a few places
    [DDC-2948] - [GH-928] Support PHPUnit 3.8+ Compatibility
    [DDC-2952] - [GH-932] [DDC-2919] Make lock mode usage consistent
    [DDC-2956] - [GH-934] faild test with multiple HINT_CUSTOM_TREE_WALKERS
    [DDC-2957] - [GH-935] Remove incorrect (outdated) validation for public fields in SchemaValidator
    [DDC-2958] - [GH-936] [WIP] Making testing dependencies explicit
    [DDC-2961] - [GH-938] Missing join-tables added in example
    [DDC-2967] - [GH-943] Validate embeddables do not contain other embeddables.
    [DDC-2968] - [GH-944] Fixed InputOption modes
    [DDC-2969] - [GH-945] Fix CS
    [DDC-2971] - [GH-947] Cleaned up further unused imports.
    [DDC-2974] - [GH-950] Can cache empty collections
    [DDC-2975] - [GH-951] More informational entity not found exception
    [DDC-2976] - [GH-952] Add DB-level onDelete CASCADE example
    [DDC-2989] - ORM should allow custom index names for foreign associations.
    [DDC-2996] - UnitOfWork::recomputeSingleEntityChangeSet() will not add a new change set
    [DDC-2997] - [GH-960] allow passing EntityManagerInterface when creating a HelperSet
    [DDC-2998] - [GH-961] [DDC-2984] Provide TestCase to reproduce bug
    [DDC-3002] - [GH-964] [SLC][DDC-2943] Disable slc for pagination queries
    [DDC-3003] - [GH-965] [SLC] Add support for criteria
    [DDC-3008] - [GH-967] [SLC] Add query builder options
    [DDC-3009] - [GH-968] Test: Add failing test
    [DDC-3010] - [GH-969] [Doc] added note about Criteria limits on PersistentCollection
    [DDC-3012] - [GH-971] [SLC] Fix query association proxy
    [DDC-3013] - [GH-972] Capitalize @GeneratedValue (annotations-reference.rst)
    [DDC-3015] - [GH-974] [SLC] Resolve association cache entry
    [DDC-3018] - DQL “NEW” Operator and Literal type "String"
    [DDC-3021] - [GH-976] Add cache invalidation strategy to AbstractQuery
    [DDC-3023] - [GH-977] Fix wrong annotation
    [DDC-3028] - [GH-978] [DDC-2987] Enable empty prefixes for inlined embeddable
    [DDC-3033] - Regression in computeChangeSets (ManyToMany relation)
    [DDC-3038] - [GH-982] Failing Test (since commit 53a5a48)
    [DDC-3041] - [GH-984] Use boolean values for 'unique' attribute
    [DDC-3042] - select issue field names with numbers
    [DDC-3045] - SQL Injection in Persister API
    [DDC-3047] - XML Exporter driver does not export association fetch-mode
    [DDC-3049] - [GH-988] Exporter support for association fetch modes
    [DDC-3054] - [GH-991] Ability to define custom functions with callback instead of class name
    [DDC-3058] - [GH-993] Update JoinColumn.php
    [DDC-3060] - [GH-995] Allow cascaded clearing of associated Entities
    [DDC-3061] - [GH-996] [DDC-3027] Embedded in MappedSuperclass
    [DDC-3062] - [GH-997] [FIX] Allow to use ManyToMany with all operators
    [DDC-3065] - Generated 'IN' clause doesn't handle 'null' values (needs to add 'IS NULL' check)
    [DDC-3067] - [GH-999] DDC-3065 null value in in criteria support
    [DDC-3069] - [GH-1000] [DDC-3068] EntityManager::find accept array of object as id
    [DDC-3071] - [GH-1002] Fixed wrongly initialized property.
    [DDC-3074] - [GH-1004] Removed all useless occurrence of require_once TestInit.php
    [DDC-3075] - [GH-1005] Added support of the subselect expressions into NEW expressions
    [DDC-3078] - Doctrine\ORM\Cache::__construct is in an interface
    [DDC-3080] - [GH-1008] DDC-3078 SLC Cache interface ctor removal
    [DDC-3081] - [GH-1009] HHVM compatibility
    [DDC-3082] - [GH-1010] Fixed validation message
    [DDC-3085] - NULL comparison are not supported for result variables in the HAVING clause
    [DDC-3092] - [GH-1012] Ddc 3078 slc cache interface ctor removal
    [DDC-3093] - [GH-1013] Remove SimpleXmlElement hack
    [DDC-3095] - [GH-1014] Update second level cache doc
    [DDC-3100] - [GH-1018] DBAL-878 Wrong mapping type
    [DDC-3103] - Is embedded class information in ClassMetadata is not stored when serializing.
    [DDC-3106] - [GH-1023] [DDC-3027] Avoid duplicated mapping using Embedded in MappedSuperclass
    [DDC-3107] - [GH-1024] [Persister] Remove the insertSql cache
    [DDC-3108] - Criteria cannot reference a joined tables' fields when used with an ORM QueryBuilder
    [DDC-3118] - [GH-1028] Add method getAssociationsByType to ClassMetadata
    [DDC-3120] - Warning: Erroneous data format for unserializing PHP5.6+
    [DDC-3123] - Extra updates are not cleaned after execution
    [DDC-3124] - [GH-1030] DDC-3123 extra updates cleanup
    [DDC-3129] - [GH-1032] Add support for optimized contains
    [DDC-3143] - [GH-1041] Allow all EntityManagerInterface implementations
    [DDC-3151] - [GH-1048] Fix typo in exception message
    [DDC-3152] - Generating methods does not check for existing methods with different case
    [DDC-3160] - Regression in reComputeSingleEntityChangeset
    [DDC-3177] - [GH-1063] singularize variable name on add/remove methods for EntityGenerator
    [DDC-3184] - Invalid hydration of entities using ManyToOne relation via queryBuilder
    [DDC-3190] - [GH-1071] Setup::createConfiguration breaks Cache interface contract
    [DDC-3191] - [GH-1072] Fix attempt of traversing bool in FileLockRegion
    [DDC-3192] - Custom types do not get converted to PHP Value when result is gotten from custom query
    [DDC-3198] - [GH-1075] Fixed query cache id generation: added platform to hash
    [DDC-3199] - [GH-1076] Fix switch non-uniform syntax
    [DDC-3210] - [GH-1080] possible fix for DDC-2021
    [DDC-3214] - [GH-1082] added more informative error messages when invalid parameter count
    [DDC-3223] - Failing test (get id return string type)
    [DDC-3225] - [GH-1087] Remove the error control operator
    [DDC-3227] - [GH-1088] Fix the composer autoload paths for the doctrine CLT
    [DDC-3233] - [GH-1092] Arbitrary Join count walkers solution
    [DDC-3237] - [GH-1096] Changes for grammar and clarity
    [DDC-3239] - [GH-1097] `expandParameters`/`getType` in BasicEntityPersister seems to really cover just few cases
    [DDC-3240] - [GH-1098] #DDC-1590: Fix Inheritance in Code-Generation
    [DDC-3254] - [GH-1111] Fix inheritance hierarchy wrong exception message
    [DDC-3269] - [GH-1120] [DDC-3205] Metadata info
    [DDC-3272] - EntityGenerator writes 'MappedSuperClass' instead of 'MappedSuperclass'
    [DDC-3278] - [GH-1123] Fixed the structure of the reverse-engineered mapping
    [DDC-3283] - [GH-1125] Update improving-performance.rst
    [DDC-3288] - [GH-1126] Fixed new line in docblock
    [DDC-3293] - XML Mappings disallow disabling column prefix for embeddables
    [DDC-3302] - [GH-1132] DDC-3272 entity generator mapped superclass casing
    [DDC-3310] - [GH-1138] Join column index names
    [DDC-3318] - [GH-1143] Fixed a bug so that a versioned entity with a oneToOne id can be created
    [DDC-3322] - [GH-1146] Allow orderBy to reference associations
    [DDC-3336] - Undefined property: Doctrine\ORM\Query\AST\SimpleArithmeticExpression::$field
    [DDC-3350] - [GH-1160] #1159 - multiple entity managers per repository factory should be supported
    [DDC-3355] - [GH-1164] [QueryBuilder] Remove unused method parameters to run on HHVM/PHP7
    [DDC-3358] - [GH-1166] Fixing HHVM+XSD validation tests as of documented HHVM inconsistencies
    [DDC-3368] - [GH-1172] Don't initialize detached proxies when merging them.
    [DDC-3370] - [GH-1173] Fix merging of entities with associations to identical entities.
    [DDC-3379] - [GH-1177] Ensure metadata cache is not ArrayCache in production
    [DDC-3380] - [GH-1178] Fixing associations using UUIDs
    [DDC-3387] - [GH-1182] #1086 identifier type in proxies
    [DDC-3394] - UOW CreateEntity failure with zerofill columns
    [DDC-3404] - [GH-1188] Fixed counting exception
    [DDC-3419] - [GH-1196] Inherit indexes from mapped superclass
    [DDC-3425] - [GH-1202] Checks key exists rather than isset
    [DDC-3427] - Doctrine\ORM\Mapping\ClassMetadataFactory explicitly accepts EntityManager
    [DDC-3428] - [GH-1204] Fix sequence-generator in MetaData exporter for XML Driver.
    [DDC-3429] - [GH-1205] Hotfix - #1200 symfony 2.7 deprecation fixes
    [DDC-3430] - [GH-1206] matching should not change critera
    [DDC-3431] - [GH-1207] Embedded classes reflection new instance creation with internal PHP classes
    [DDC-3432] - [GH-1208] DDC-3427 - class metadata factory should accept `EntityManagerInterface` instances
    [DDC-3433] - [GH-1210] DDC-3336 - undefined property with paginator walker and scalar expression in ORDER BY clause
    [DDC-3434] - LimitSubqueryOutputWalker does not retain correct ORDER BY expression fields when dealing with HIDDEN sort fields
    [DDC-3435] - [GH-1211] DDC-3434 - paginator ignores `HIDDEN` fields in `ORDER BY` query
    [DDC-3436] - [GH-1212] [DDC-3108] Fix regression where join aliases were no longer accessible in Criteria expressions
    [DDC-3437] - [GH-1213] fix instantiation of embedded object in ReflectionEmbeddedProperty
    [DDC-3439] - [GH-1216] test XML export driver, the field options, for #1214
    [DDC-3454] - [GH-1224] Updated setParameters function for not replace all parameters
    [DDC-3466] - [GH-1233] [Minor] Refactoring to avoid duplicate code
    [DDC-3470] - [GH-1235] Consistent return type confirming with interface
    [DDC-3478] - [GH-1239] Fix index duplication for unique association join columns
    [DDC-3482] - [GH-1242] Attempting to lock a proxy object fails as UOW doesn't init proxy first
    [DDC-3493] - New (PHP 5.5) "class" keyword - wrong parsing by EntityGenerator
    [DDC-3494] - [GH-1250] Test case for "class" keyword
    [DDC-3502] - [GH-1256] DDC-3493 - fixed EntityGenerator parsing for php 5.5 "::class" syntax
    [DDC-3506] - [GH-1259] Hotfix: Cache region should not mutate injected cache instance settings
    [DDC-3513] - [GH-1262] Fixes the broken DQL command

Documentation

    [DDC-2510] - [GH-700] Update getting-started.rst
    [DDC-2511] - [GH-701] list_bugs.php needs to call to getters for protected vars
    [DDC-2549] - [GH-721] Updated batch-processing link extension
    [DDC-2553] - [GH-723] Remove extra semicolon before ->setParameter() calls
    [DDC-2571] - [GH-734] Cleaned up documentation
    [DDC-2620] - [GH-762] YAML mapping documentation of uniqueConstraint
    [DDC-2755] - [GH-825] Spelling fix
    [DDC-2777] - [GH-838] Spelling fix
    [DDC-2778] - [GH-839] Spelling fix
    [DDC-2801] - [GH-851] Documentation about how to use INSTANCE OF in inheritance
    [DDC-2819] - [GH-860] Mention SQL Anywhere in basic mapping documentation
    [DDC-2821] - [GH-862] Added a note about changing the fetch mode for to-many relations
    [DDC-2834] - [GH-868] Added documentation section for Memcached
    [DDC-2846] - [GH-870] Documenting interface methods (based on entity manager)
    [DDC-2848] - [GH-872] Doctrine 2.4 now supports SQLite ALTER TABLE
    [DDC-2873] - [GH-888] Add an example to doc of YAML mapping
    [DDC-2887] - [GH-898] Added note to STI
    [DDC-2925] - [GH-913] Added exception class names
    [DDC-2928] - [GH-915] Improved DQL's "new" operator documentation
    [DDC-2963] - [GH-940] Fixed typo & horizontal scrolling
    [DDC-2979] - [GH-953] Update doc with latest news about extra lazy assoc
    [DDC-2985] - [GH-955] iteration risk note
    [DDC-3019] - [GH-975] Added info about automatic discriminator map
    [DDC-3048] - [GH-987] Fixes typo in dql-doctrine-query-language.rst
    [DDC-3053] - [GH-990] Typo in documentation
    [DDC-3057] - [GH-992] Fixed typos
    [DDC-3059] - [GH-994] Update EntityGenerator comment
    [DDC-3073] - @Column options
    [DDC-3077] - [GH-1007] Minor dockblock change
    [DDC-3086] - [GH-1011] Single quotes can't nest
    [DDC-3097] - [GH-1015] Add ExpressionBuilder::contains() to docs
    [DDC-3111] - [GH-1025] Removed duplicate entry in documentation TOC.
    [DDC-3127] - [GH-1031] Documentation for #991
    [DDC-3131] - [GH-1034] Update caching.rst
    [DDC-3139] - [GH-1038] Add documentation for the `HIDDEN` keyword in DQL
    [DDC-3140] - [GH-1039] Add yml example to single table inheritance
    [DDC-3144] - [GH-1042] Fix second level cache doc
    [DDC-3145] - [GH-1044] Use of ->andWhere() whithout any ->where() before is valid
    [DDC-3166] - [GH-1058] Drop Unicode character
    [DDC-3168] - [GH-1059] fix spacing for yaml example
    [DDC-3185] - [GH-1068] Fix typo in documentation
    [DDC-3216] - [GH-1083] [DDC-3073] Add documentation about how to map column options
    [DDC-3217] - [GH-1084] Update advanced-field-value-conversion-using-custom-mapping-types.rst
    [DDC-3253] - [GH-1110] Changed table name to be more appropriate.
    [DDC-3261] - Bad link in 34.3 Advanced Configuration - Connection Options
    [DDC-3262] - [GH-1115] Fix wrong variable name
    [DDC-3266] - [GH-1116] [DDC-3265] Fix DocBlock
    [DDC-3292] - [GH-1127] Document embeddables column prefixing
    [DDC-3324] - [GH-1147] Extended the docs for mapping attributes precision and scale
    [DDC-3326] - [GH-1148] [DWEB-118] Fixed small typo in documentation about extra lazy associations
    [DDC-3347] - [GH-1157] Fixing calls of schema-update tools
    [DDC-3348] - [GH-1158] Update QueryBuilder reference documentation.
    [DDC-3351] - [GH-1161] Fixing error with from() parameters in example
    [DDC-3353] - [GH-1163] Update xml-mapping.rst
    [DDC-3388] - [GH-1183] Update tools.rst
    [DDC-3389] - [GH-1184] Postgres SERIAL is not a post-insert identifier generation strategy
    [DDC-3408] - [GH-1190] Document that AUTOGENERATE_ constants are allowed
    [DDC-3411] - [GH-1192] Fixed a very minor typo
    [DDC-3417] - [GH-1195] Correction Events.rs - Entity Listeners Resolver
    [DDC-3420] - [GH-1198] Tables for buttons.
    [DDC-3421] - [GH-1199] minor typo
    [DDC-3456] - [GH-1226] Update Travis badges to use the SVG version
    [DDC-3471] - [GH-1236] Minor docs fix: missing word 'do'
    [DDC-3484] - [GH-1244] Change $this return type to static in AbstractQuery
    [DDC-3499] - [GH-1253] Fix dead link

Improvement

    [DDC-54] - Trigger postLoad events and callbacks after associations have been initialized
    [DDC-1283] - Possible issue with PersistentCollection#getDelete/InsertDiff()
    [DDC-1590] - Fix Inheritance in Code-Generation
    [DDC-1787] - Fix for JoinedSubclassPersister, multiple inserts with versioning throws an optimistic locking exception
    [DDC-1858] - LIKE and IS NULL operators not supported in HAVING clause
    [DDC-2052] - Custom tree walkers are not allowed to add new components to the query
    [DDC-2061] - Matching Criteria on a PersistentCollection only works on OneToMany associations
    [DDC-2128] - [GH-507] Now MetaDataFilter takess also regexp. For example whern you want to
    [DDC-2183] - Second Level Cache improvements
    [DDC-2210] - PHP warning in ProxyFactory when renaming proxy file
    [DDC-2217] - Return a lazy collection from PersistentCollection::match($criteria)
    [DDC-2319] - [GH-590] DQL Query: process ArrayCollection values to ease development
    [DDC-2534] - [GH-711] Coveralls code coverage
    [DDC-2538] - [GH-713] Quick grammar fix
    [DDC-2544] - [GH-717] Allow query parameters starting with an underscore
    [DDC-2546] - [GH-719] Access properties via static:: instead of self::.
    [DDC-2615] - LIKE operator not supported in HAVING clause
    [DDC-2636] - Handle SQLite with dot notation in @Table and @JoinTable
    [DDC-2639] - [GH-771] Added indexBy option to createQueryBuilder
    [DDC-2770] - [GH-833] Generate-Entities-Console-Command: Adding an 'avoid backup' flag
    [DDC-2789] - [GH-844] Teach orm:validate-schema to --skip-mapping and --skip-sync
    [DDC-2794] - the Paginator does not support arbitrary join
    [DDC-2814] - [GH-858] lifts an unnecessary restriction on ResultSetMappingBuilder
    [DDC-2824] - [GH-863] The new configuration option: defaultQueryHints
    [DDC-2861] - [GH-881] Fix persistence exception on a table with a schema on a platform without schema support
    [DDC-2865] - [GH-882] Efficient counting on Criteria
    [DDC-2868] - [GH-885] Add support for ManyToMany Criteria
    [DDC-2926] - [GH-914] added license badge
    [DDC-2970] - [GH-946] Cleaned up unused imports
    [DDC-2981] - Multi get for second level cache (Doctrine Cache related)
    [DDC-2982] - [GH-954] Multi Get support for Second Level Cache
    [DDC-2984] - Support Custom DBAL types to be used as identifiers
    [DDC-2991] - [GH-957] makes doctrine less dependent upon the symfony yaml component
    [DDC-2999] - [GH-962] Stop executeDeletions when there is nothing to to delete anymore
    [DDC-3000] - [GH-963] SQLFilter -- allows to check if a parameter was set
    [DDC-3004] - [GH-966] Simplify build matrix
    [DDC-3005] - Events::postLoad fires without filled associations
    [DDC-3014] - [GH-973] Added index flags support in annotation, xml & yaml mapping drivers.
    [DDC-3032] - [GH-980] Added options attribute export to Annotation, Xml & Yaml exporters.
    [DDC-3039] - [GH-983] Added MEMBER OF and INSTANCE OF to ExpressionBuilder
    [DDC-3068] - EntityManager::find does not accept an array of object as a primary key
    [DDC-3070] - [GH-1001] [DDC-3005] Defer invoking of postLoad event to the end of hydration cycle.
    [DDC-3076] - [GH-1006] Handling invalid discriminator values
    [DDC-3114] - [GH-1026] Remove some redundant clauses
    [DDC-3133] - [GH-1036] Move space addition to implementation.
    [DDC-3138] - [GH-1037] I can't look at those semicolons, sorry ;-)
    [DDC-3150] - [GH-1047] Minor grammatical corrections
    [DDC-3178] - [GH-1064] remove on-update from join-column
    [DDC-3249] - [GH-1105] Add support for nesting embeddables
    [DDC-3257] - [GH-1112] DefaultRepositoryFactory: single repository for aliased entities
    [DDC-3274] - Improve schema validator error message
    [DDC-3275] - [GH-1121] [DDC-3274] Improve schema validator error message for invalid bi-directional relations
    [DDC-3276] - [GH-1122] Support arithmetic expressions in `COUNT()`
    [DDC-3300] - [GH-1130] [WIP] Added resolve entities support in discrim. map
    [DDC-3304] - [EntityGenerator] Embeddables properties and methods are broken
    [DDC-3305] - [GH-1133] [Embeddables] Improved exception message
    [DDC-3307] - [GH-1135] [DDC-3304] Add support for embeddables in entity generator
    [DDC-3418] - Indexes not inherited from mapped superclass
    [DDC-3457] - [GH-1227] Ensure query cache is not ArrayCache in production
    [DDC-3477] - [GH-1238] Avoid prefixing columns when `false` is assigned to `column-prefix`
    [DDC-3479] - [GH-1240] Include IDs in the exception message to ease debugging
    [DDC-3483] - [GH-1243] Fixed phpunit tests autoload requirements and moved to composer autoload-dev
    [DDC-3486] - [GH-1245] Implemented support for one to many extra lazy with joined inheritance.
    [DDC-3487] - [GH-1246] [WIP] Moved delete() and update() to proper locations.
    [DDC-3490] - [GH-1248] improved error handling for invalid association values #2
    [DDC-3492] - [GH-1249] Support for extra lazy get for both owning and inverse side on many to many associations.
    [DDC-3495] - [GH-1251] travis: optimize to run coverage only once
    [DDC-3496] - [GH-1252] Include className in calls to NamingStrategy joinColumnName method
    [DDC-3501] - [GH-1255] Cleanup: PHP 5.3 support end
    [DDC-3503] - [GH-1257] Resolve target entity also in discriminator map (allows interfaces and custom names in discriminator map)
    [DDC-3504] - [GH-1258] Classify persisters into more granular namespaces.
    [DDC-3514] - LimitSubqueryOutputWalker should not duplicate orderBy clauses
    [DDC-3515] - [GH-1263] #1223 DDC-3453 - make `EntityManager` constructor `public`

Sub-task

    [DDC-2850] - Allow cascaded clearing of Entities associated to the indicated Entity


2.4.7 - 16 Dec 2014

    925: DDC-2310 DDC-2675 - Fix SQL generation on table lock hint capable platforms DDC-2310 DDC-2675
    1191: DDC-3409 DDC-2846 - Documenting interface methods (based on entity manager) DDC-3409 DDC-2846
    1188: DDC-3404 - Fixed Paginator parameter counting exception DDC-3404
    1210: DDC-3336 - Undefined property: Doctrine\ORM\Query\AST\SimpleArithmeticExpression::$field DDC-3336
    1211: DDC-3434 - Paginator ignores HIDDEN fields in ORDER BY query DDC-3434
    1202: DDC-3425 - Checks key exists rather than isset - allow null values in column options DDC-3425


v2.4.6 - 6 Oct 2014

    1154: PHP 5.6 internal classes/Serializable serialization fix DDC-3120 DDC-3339


v2.4.5 - 22 Sep 2014

    1142: func_get_args() call order fix for HHVM bug DDC-3317


v2.4.4 - 10 Jul 2014

    #1074 DDC-2996 DDC-3160 DDC-3208 Regression in change set state after UnitOfWork::recomputeSingleEntityChangeSet()

v2.4.3 - 10 Jun 2014

v2.4.2 - 8 Feb 2014

v2.4.1 - 12 Nov 2013

v2.4.0 - 7 Sep 2013

[DDC-1844] - [GH-360] [DDC-1840] Implemented parameters as a collection.
[DDC-1884] - leftJoin via composite key part not hydrated if joining table solely consists of identifiers
[DDC-1995] - "Query Exception: Invalid parameter number: number of bound variables does not match number of tokens" when using an "Instance Of" expression
[DDC-1998] - Problem when deleting with EntityManager->remove($entity)
[DDC-2000] - [GH-431] [ORM] Fix double semicolon
[DDC-2016] - DQL Parser fails in select clause
[DDC-2019] - addOrderBy function incomplete
[DDC-2020] - [GH-440] The schema tool now doesn't add a foreign constraint when subclassess of...
[DDC-2044] - [GH-455] Fixed unique-constraint name in XML Exporter
[DDC-2047] - [GH-456] Optimize autoload prefix in composer.json
[DDC-2049] - [GH-458] Use cascade=all if all cascade options set
[DDC-2051] - after filtering an association by using ->matching(Criteria) original association changes
[DDC-2054] - [GH-461] [SchemaValidator] Fix typo
[DDC-2062] - [GH-466] Use protected so EntityGenerator can be extended
[DDC-2083] - [GH-482] user can set its own commands in the cli-config.php file
[DDC-2090] - MultiTableUpdateExecutor works incorrect with query cache enabled
[DDC-2091] - [GH-486] Fix DDC-2084
[DDC-2106] - Notice trying to match a Criteria referencing a managed entity not yet persisted
[DDC-2132] - [GH-509] SchemaTool ignoring 'fixed' option
[DDC-2136] - convert-mapping can't create YML from Annotation when Id column is a OneToOne relationship
[DDC-2137] - [GH-510] CS on QueryBuilder
[DDC-2138] - Foreign Keys in STI are wrong when same field is reused in different classes.
[DDC-2142] - [GH-513] Enumeration support
[DDC-2151] - [GH-515] Fixes sandbox cli: The helper "em" is not defined.
[DDC-2153] - [GH-517] Fix for DDC-1765
[DDC-2169] - [GH-524] EntityManagerDecorator base class as an extension point for EntityManager
[DDC-2172] - GENERATOR_TYPE_UUID missing in EntityGenerator.php
[DDC-2173] - [GH-525] Ensure onFlush and postFlush events are always called Edit
[DDC-2174] - [GH-526] [DDC-2172] Fix EntityGenerator get literal type
[DDC-2181] - [GH-528] Documentation fixes
[DDC-2188] - DQL arithmetic priority is not considered in expression 'a/(b*c)'
[DDC-2201] - [GH-537] fixed problems with joined inheritance and composite keys
[DDC-2205] - Negative Values in Case Then expressions
[DDC-2208] - CASE WHEN ... WHEN doesn't work
[DDC-2209] - [GH-540] [DDC-2208] Fix DDC-2208
[DDC-2214] - extra single quotation in sql when using EntityRepository::findBy
[DDC-2234] - WHERE <> IS NULL ... doesn't work
[DDC-2235] - Single table inheritance discriminator in WHERE when using arbitrary join syntax
[DDC-2247] - [GH-551] [DDC-2234] FUNCTION() IS NULL comparison
[DDC-2252] - Trying to delete ManyToMany relatrionship with composite keys.
[DDC-2256] - [GH-554] Fixed ObjectHydrator when namespace alias is given.
[DDC-2268] - Lexer error using string functions inside CASE WHEN
[DDC-2272] - [GH-565] Removed an unused local variable.
[DDC-2273] - [GH-566] Added missing return statement to AbstractCommand.
[DDC-2274] - [GH-567] Removed outdated methods in DatabasePlatformMock
[DDC-2276] - [GH-569] Hotfix/pre flush event args params
[DDC-2289] - [GH-575] Added YAML configuration example for "Simple Derived Identity" in Docs
[DDC-2291] - [GH-576] Update docs/en/reference/batch-processing.rst
[DDC-2294] - [GH-579] Unit tests: cleanup of outdated / unused / commented out code
[DDC-2304] - [GH-583] accept more than 2 parameters in CONCAT function
[DDC-2306] - Lazy loading associated entity's property causes identity loss when another association is set to fetch="EAGER"
[DDC-2311] - ManyToManyPersister fails to delete when entity uses FK ID
[DDC-2312] - [GH-586] Fix EntityManager doc
[DDC-2326] - [GH-595] Fixed broken code block in documentation
[DDC-2327] - [GH-596] Missing link to a cookbook in the docs
[DDC-2330] - [GH-599] Removed unnecessary "<?php" from the docs
[DDC-2334] - [GH-602] Added $isIdentifierColumn documentation
[DDC-2345] - convertObjectParameterToScalarValue() raises a notice
[DDC-2355] - [GH-618] [DDC-2188] Fix arithmetic priority
[DDC-2356] - [GH-619] [DDC-2090] Fix MultiTableUpdateExecutor with query cache
[DDC-2360] - [GH-622] Import EntityManager from proper namespace
[DDC-2366] - [GH-627] update document on Doctrine cache provider
[DDC-2369] - [GH-630] Hotfix for DDC-2359
[DDC-2385] - [GH-640] [Paginator]Add hidden field ordering for postgresql
[DDC-2392] - [GH-644] Fixed typos
[DDC-2396] - [GH-646] Oracle Pagination bug when ordering is present
[DDC-2407] - AbstractExporter _getIdGeneratorTypeString does not know about the UUID generator
[DDC-2409] - Merge operation tries to add new detached entities to indentity map and load them as proxies
[DDC-2417] - [GH-653] [DDC-2415] Fix CustomIdGenerator inheritance
[DDC-2419] - [GH-655] [DDC-2409] Fix merge association UnitOfWork::STATE_NEW
[DDC-2420] - [GH-656] [DDC-2235] Fix for using a LEFT JOIN onto an entity with single table inheritance
[DDC-2429] - Association-Override Problem in XSD Mapping?
[DDC-2430] - Incorrect results when using ->matching on PersistentCollection
[DDC-2432] - Entity can be initialized even if not found
[DDC-2435] - Column name with number and reserved character creates invalid query
[DDC-2438] - [GH-661] Update annotations-reference.rst
[DDC-2439] - [GH-662] Fixed a code block.
[DDC-2441] - Incorrect SQL Query being generated
[DDC-2442] - [GH-663] Adding failing test to demonstrate DDC-2432
[DDC-2446] - [GH-666] [DDC-2429] Fix xsd definition
[DDC-2451] - Entity listeners class don't work when metadatas are stored in cache
[DDC-2456] - [GH-669] Fixed generating column names for self referencing entity.
[DDC-2457] - [GH-670] [DDC-2451] Fix entity listeners serialization
[DDC-2458] - [GH-671] [DDC-2435] Fix column name with numbers and non alphanumeric characters.
[DDC-2460] - [GH-672] Simplification example
[DDC-2461] - [GH-673] Namespace based command names
[DDC-2470] - Sql Server error in createQuery using ORDER BY and setMaxResults
[DDC-2475] - ORDER BY on existing column is added, not replaced
[DDC-2478] - PersisterException when matching Criteria expression isNull to ArrayCollection
[DDC-2488] - [GH-686] [DDC-2475] Replace OrderBy mapping when OrderByClause is given
[DDC-2493] - [GH-689] [WIP][DDC-1995 ] Support metadata class as parameter for instance of expression
[DDC-2505] - [GH-697] Fix phpDoc syntax in ClassMetadataInfo.php
[DDC-2506] - WITH Conditionals on Class Table Inheritance LEFT JOINs are inserted incorrectly
[DDC-2517] - [GH-703] Clear visitedCollections
[DDC-2521] - [GH-706] [DDC-1398] Extra-lazy get for indexed associations
[DDC-2533] - [GH-710] Fix extra lazy get
[DDC-2539] - ResultVariable cannot be used in Like expressions
[DDC-2542] - [GH-716] Appending the Paginator tree walker hint
[DDC-2548] - [GH-720] Allow to have non-distinct queries
[DDC-2564] - PersistentCollection - coll is not initialized for Collection methods
[DDC-2577] - [GH-737] Skip not mapped public properties in SchemaValidator
[DDC-2578] - [GH-738] Modified Hydrators to be per-query instances instead of a singleton-like approach
[DDC-2579] - BasicEntityPersister - delete bug
[DDC-2582] - [GH-741] Fixed DDC-1884.
[DDC-2587] - [GH-744] Corrected PHP type for "decimal" mapping type
[DDC-2607] - [GH-753] JoinedSubclassPersister doesn't properly bind on some versions of php
[DDC-2610] - [GH-755] corrected English grammar in docblocks
[DDC-2612] - [GH-757] Update resolve-target-entity-listener.rst
[DDC-2614] - [GH-758] Fixed DDC-2235.
[DDC-2623] - [GH-763] Entity generator - trait in parent class
[DDC-2638] - [GH-770] Fix for entity generator discriminator column
[DDC-2640] - [GH-772] DO NOT OVERRIDE CUSTOM TREE WALKERS IN getIterator()
[DDC-1872] - Evaluate @AssocationOverride/@AttributeOverride in context of Traits
[DDC-2265] - [GH-561] fix typo in the documentation
[DDC-2266] - [GH-562] Fix error in QueryBuilder example
[DDC-2358] - [GH-621] [doc] adding some more doc and examples for lifecycle event listeners and subscribers
[DDC-2583] - [GH-742] Cleaned up events.rst
[DDC-2609] - [GH-754] Fixed syntax highlighting in working-with-associations.rst
[DDC-2650] - [GH-775] Update create bug script
[DDC-717] - Do not use files when using proxy autogeneration
[DDC-1245] - Check if Entity implements EventSubscriber to allow access to EM
[DDC-1376] - Foreign key not available to order when using findBy()
[DDC-1398] - loading one item at a time when indexBy and EXTRA_LAZY fetch mode is used on a collection
[DDC-1956] - [GH-413] code refactorings on persister
[DDC-1981] - ProxyFactory does not throw exceptions that are verbose enough (hard to debug)
[DDC-2186] - PreFlushEventArgs not passed by ClassMetadataInfo::invokeLifecycleCallbacks()
[DDC-2187] - [GH-531] use base events
[DDC-2215] - [GH-543] Make doctrine a Light-weight distribution package in Composer
[DDC-2313] - Deep clone for DBAL QueryBuilder
[DDC-2320] - [GH-591] Remove dead code
[DDC-2333] - [GH-601] Add 'contains' comparison
[DDC-2359] - ClassMetadataFactory::wakeupReflection() is called twice
[DDC-2384] - [GH-639] Added abillity to use metacolumn as indexBy
[DDC-1574] - Support operator 'new' in DQL
[DDC-1955] - Support for @EntityListeners
[DDC-1979] - [GH-422] DDC-1574 - "new" operator
[DDC-1980] - [GH-423] DDC-1955 - @EntityListeners
[DDC-2055] - Helper to generate SQL SELECT clause for Native Query
[DDC-2056] - [GH-462] [DDC-2055] Generate SELECT clause from ResultSetMappingBuilder
[DDC-2202] - [GH-538] IDENTITY() Support composite primary key
