Problema com relacionamento recursivo no Hibernate

Bom dia pessoal,

Eu estou tendo um problema com um mapeamento de relacionamento recursivo no hibernate.

a regra é a seguinte: Menu pode ter zero ou n menus filhos.

Problema: Quando tendo inserir um menu sem passar o meu pai, dá Caused by: java.lang.NullPointerException

segue o codigo par ter uma melhor ideia:

public class Menu extends AbstractDTO {

    private static final long serialVersionUID = 1L;
    private Integer identificador;
    private Menu menuPai;
    private Set menus;

    gets and sets
}
<hibernate-mapping>
    <class name="br.com.Menu" table="MENU">
        <id name="identificador" type="java.lang.Integer">
            <column name="ID_MENU" precision="7" scale="0" />
            <generator class="sequence">
            	<param name="sequence">SEQ_MENU</param>
            </generator>
        </id>

        <many-to-one name="menuPai" class="br.com.Menu"    fetch="select">
            <column name="ID_MENU_PAI" precision="7" scale="0"/>
        </many-to-one>

        <set name="menus" inverse="true" lazy="false">
            <key>
                <column name="ID_MENU_PAI" precision="7" scale="0"/>
            </key>
            <one-to-many class="br.com.Menu" />
        </set>

    </class>
</hibernate-mapping>

CREATE TABLE MENU
(
  ID_MENU      NUMBER(7)                        NOT NULL,
  ID_MENU_PAI  NUMBER(7),
  ID_TELA      NUMBER(7)                        NOT NULL,
  TITULO       VARCHAR2(100 BYTE)               NOT NULL,
  DESCRICAO    VARCHAR2(1000 BYTE)              NOT NULL,
  ID_SISTEMA   NUMBER(5)
)

já tendei de tudo, fiz varias pesquias e nada!!!