Skip to content


DDC-2838: Leaky abstraction when applying Criteria to hydrated/non-hydrated PersistentCollection #3591

doctrinebot opened this Issue · 7 comments

2 participants


Jira issue originally created by user ptlis:

When applying a Criteria to a PersistentCollection that has been hydrated the field names must be camel case, if the collection has not yet been hydrated the field names must be underscore separated.

The github repo linked here contains a simplified testcase for the matrix of hydrated/non-hydrated entities and camel case/underscore separated fields.


Comment created by @ocramius:

We can't check out an entire project just to test a bug.

Please write an actual functional test case that can be integrated into the Doctrine ORM test suite.


Comment created by ptlis:


i'm happy to do so - i'll take a look at this over the weekend.


Comment created by derula:

[~ptlis]: Any progress on this? This is currently an issue for us as well and hope to get fixed. I could look into converting it to a test for integration with the test suite if you don't have the time... but it might take a while since I have no experience with the requirements that should be met. (Plus, I am not sure how tightly coupled it is with your project)


Comment created by derula:

Hi [ocramius], [ptlis],

I attached a functional Test that integrates with the test suite. Please let me know if I should issue a PR, and I'll do that this evening.


Comment created by floeh:



Comment created by derula:

My idea to solve this would go like this:

  • Add a new class ObjectCollection in Common that implements Collection and Selectable, but requires class metadata.
  • Whenever creating an ArrayCollection with entities / other objects, create an ObjectCollection instead.

The only thing that's causing me a headache is that ideally, there should be code sharing in some form between the matching() implementations of ObjectCollection and PersistentCollection, because both will use class metadata. Maybe this can be achieved somehow using a trait?

If you like the idea, I could look into it further.

@Ocramius Ocramius was assigned by doctrinebot
@doctrinebot doctrinebot added the Bug label
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.