From doctrine documentation: All helper methods in QueryBuilder actually rely on a single one: add(). This method is responsible of building every piece of DQL. It takes 3 parameters: $dqlPartName, $dqlPart and $append (default=false).
After changing the default behavior of $append to true, this is working much better for me.