Como forçar o hibernate a executar um Left Join?

Tenho a entidade Usuario com relacionamento @OneToOne com NumeroSerie

A entidade que manda é Usuario. Em NumeroSerie só esta com @OneToOne(mappedBy = “numeroSerie”) - que é o atributo em Usuario.
Em Usuario, tenho

	@OneToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "IDNUMEROSERIE")
	private NumeroSerie numeroSerie;

Acontecerá uma situação onde os usuários cadastrados terão ou não numero de série.
Quando realizo um criteria em Usuario para trazer todos, o select montado é:

select
        this_.id as id0_1_,
        this_.cpf as cpf0_1_,
        this_.login as login0_1_,
        this_.nome as nome0_1_,
        this_.IDNUMEROSERIE as IDNUMERO6_0_1_,
        this_.senha as senha0_1_,
        numeroseri2_.id as id1_0_,
        numeroseri2_.numeroSerie as numeroSe2_1_0_ 
    from
        Usuario this_ 
    left outer join
        NumeroSerie numeroseri2_ 
            on this_.IDNUMEROSERIE=numeroseri2_.id

Quando tento ordenar pela coluna String do numero de série ele faz um inner join:

select
        this_.id as id0_1_,
        this_.cpf as cpf0_1_,
        this_.login as login0_1_,
        this_.nome as nome0_1_,
        this_.IDNUMEROSERIE as IDNUMERO6_0_1_,
        this_.senha as senha0_1_,
        numeroseri1_.id as id1_0_,
        numeroseri1_.numeroSerie as numeroSe2_1_0_ 
    from
        Usuario this_ 
    inner join
        NumeroSerie numeroseri1_ 
            on this_.IDNUMEROSERIE=numeroseri1_.id 
    order by
        numeroseri1_.numeroSerie asc

Eu sei que utilizando criteria posso forçar utilizando o CriteriaSpecification

Mas não posso alterar isso no meu componente (impacta em pontos em todo o sistema)!

Existe um meio de realizar isso através de annotations?