When I debugged I understood that containable unbinds model relations which are not requested by the query to avoid useless sub SQL queries, that why the second query do not retrieve D data (see my other comment). So I store unbound model relations (l. 160 -> l.165) to restore them (l.243 -> l.246) after the query has been executed.