A rule of thumb is: put the method in the reository that gives the 
corresponding entities back. So, in you last example it is in the 
category-repo, bcause you retrieve categories, and in the example in your 
first posting in the opening hour repo, giving back opening hours. Just 
cannot find where I recently read about this.

However, I don't understand your remark " i would have to inject all the 
repositories into my company service to receive the associations with its 
own associations" when using the category-repository. 

On Monday, 14 April 2014 09:55:14 UTC+2, Dominik Barann wrote:
>
> Hey,
>
> the main problem is not to order the result. Maybe the following example 
> would be better:
>
> Company 1...n Category
> Category 1...n Items
>
> To receive the categories of a company with its items i could do
>
> foreach ($company->getCategories() as $category) {
>     foreach ($category->getItems() as $item) {
>         ...
>     }
> }
>
> The problem here is, that this will result in a lot of database queries 
> because the associations not loaded until i need them. I know that i could 
> use the annotation "fetch=EAGER" in my entity but i dont want to load the 
> categories all the time. So i have to write a method in a repository to 
> receive the categories with its items in one database query using joins. 
> But the question is in which repo i have to write that method? The company 
> or the category repo?
>
> If it would be category repo with a method called 
> findByCompanyJoinedItems(Company $company) i would have to inject all the 
> repositories into my company service to receive the associations with its 
> own associations. 
>
> The other way would be a method called 
> findCategoriesJoinedItemsByCompany(Company $company) in the company repo 
> and only inject this repo into my service. But somwhow that feels weird...
>
> Hat it being a perfectionism :(
> Greets Dominik
>
> Am Freitag, 11. April 2014 17:49:27 UTC+2 schrieb Holtkamp:
>>
>> @Nima, I meant to define it in the association metadata as described 
>> quite well here:
>> - 
>> http://doctrine-orm.readthedocs.org/en/latest/tutorials/ordered-associations.html
>> - 
>> http://doctrine-orm.readthedocs.org/en/latest/reference/annotations-reference.html#annref-orderby
>>
>> As soon as an Entity is loaded, this particular association would be 
>> ordered as requested. So no need to 'think' about it anymore as a 
>> developer, which can be useful in specific cases, which this was.
>>
>> have a nice weekend!
>>
>>
>> On 11 April 2014 14:52, Nima Sadjadi <[email protected]> wrote:
>>
>>> Menno,
>>> Do you mean somethibg like this?
>>> find(...)->orderedBy(...)
>>> Does this method work with find() too?
>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "doctrine-user" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/doctrine-user.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"doctrine-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/doctrine-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to