The idea here is to provide ways to achieve the DDD paradigm.
I don't want to obscure @magnusnordlander's answer, I will apply what he says.
Here are a few notes on this:
I think that the essence itself should not have everything. This is definitely not what DDD people will say anyway. The body of [Doctrine2] should only care about relationships (an object with different variations <= This is actually what I stuck for a while) and the cumulative root .
The essence of the doctrine should know only how to work with oneself.
But to get data or work with it, there are other things you can use:
Repository
This is what provides helpers to get more sophisticated crawlers than what quick findBy(array('id'=>$idvalue)) (and that Entity / Assocation / Annotation can't cover) and a really great thing to to have comfortable.
I personally tried to create all the queries and realized that the EntityManager is already very good, out of the box. In most cases, in my opinion,. If you can / don't use / use the query or query builder, all the better.
The business logic in all of this ...
The last thing you noticed, what you were looking for, should be to basically remove the controller.
FooManager (for example) is where (if I'm not mistaken) the business logic goes.
In this blog, I found a goldmine of information that covers:
If you have any ideas to complement, I asked this answer as a Community Wiki