Hibernate retornando objeto de relacionamento NULL

Opa, pessoal

Bom o negócio é o seguinte tenho uma classe X que possui um relacionamento com a classe Y exemplo:

public class X implements Serializable {
...   

    @OneToOne
    @JoinColumn(name = "codigoy")
    private Y cy;

....
}

Quando o campo codigoy no banco esta populado ele retorna normal o objeto cy,
daí que vem o problema quando não está populado ele retorna o objeto cy vazio = null,

Então minha duvida é tem como fazer o hibernate retornar uma nova instancia do objeto cy ao inves de null?
Alguma anotação ou algo que de para tratar antes de chegar no controle?

só pra eu entender…

Você tem a tabela X que dentro dela tem um campo codigy que é da tabela Y, certo?

Quando lá está populado, tranquilo né?

Quando este código da tabela Y está null, e você tenta acessa-lo da tabela X, dá NullPointer, correto?

Faz assim…

@OneToOne  
@JoinColumn(name = "codigoy", nullable = false)
private Y cy;

Não sei se este é realmente seu problema, se for isso mesmo que eu entendi, talvez isso possa resolver o seu problema.

Você tem a tabela X que dentro dela tem um campo codigy que é da tabela Y, certo?
Sim a tabela X tem um campo codigoy.

Quando lá está populado, tranquilo né?
Sim, quando esse campo tem valor sem problemas.

Quando este código da tabela Y está null, e você tenta acessa-lo da tabela X, dá NullPointer, correto?
Então, não chega a lançar uma excessão no momento da consulta, o meu problema é que estou utilizando jsf e o campo q recebe esse valor vai está com o objeto null e depois isso sim gerará um erro.

O erro acontece pq o obejto X.Y está null,
tem como eu tratá-lo no controle depois de realizada a consulta por exemplo:

//consulta no hibernate para me retornar x
   x = ConsultaDAO.getX();
//dai posso verificar aqui e y esta null e instancia-lo novamente
 if(x.y == null){
   x.y = new Y();
}

Então gostaria de saber se tem como fazer isso ou no mapeamento ou no modelo para que não precise tratar todas as classes no controle.

mas… o normal é que ele fica null mesmo não??

se não existe Y para aquele X? ele deveria estar instanciado??

pq daria problemas depois?

mas… o normal é que ele fica null mesmo não??
sim, está correto esta afirmação, mas achei q poderia arrumar um jeito de contornar isso.

se não existe Y para aquele X? ele deveria estar instanciado??
pq daria problemas depois?
entao o problema ocorre pq trago um campo do elemento Y para um input no meu JSF,
e como ele está null ocorre este erro.

Mas pendei q poderia arrumar isso direto no hibernate, mas não deve ter jeito mesmo ne?