Problemas com relacionamentos n:n no hibernate

ai Galera, estou precisand da ajuda de vocês .
Tenho um mapeamento n:n entre usaurio e perfil… gerando uma tabela intermediaria…


Perfil*****

<hibernate-mapping>
    <class name="uai.modelo.Perfil" table="tb_perfil">
        <id name="id_tb_perfil"  >
            <generator class="increment"/>
        </id>
        <property name="perfil" />
       <!-- 
        <set name="Usuario" table="tb_usuario_perfil" 
          >
		<key column="id_tb_perfil"/>
		<many-to-many column="id_tb_usuario" 
                   class="uai.modelo.Usuario"/>
	 </set>	-->
        

    </class>
</hibernate-mapping>

**USUARIO

<hibernate-mapping>
    <class name="uai.modelo.Usuario" table="tb_usuario">
        <id name="id_tb_usuario"  >
            <generator class="increment"/>
        </id>
        <property name="nome" />
        <property name="matricula" />
        <property name="email" />
        <property name="telefone" />
        <property name="senha" />
       
        <set name="Perfil" table="tb_usuario_perfil" inverse="true">
		<key column="id_tb_usuario"/>
		<many-to-many column="id_tb_perfil" 
                       class="uai.modelo.Perfil"/>
	</set>	
    </class>
</hibernate-mapping>

COMO PODE PERCEBER TENHO UMA TABELA PERFIL_USUARIO
na qual contem os ids id_tb_usuario e id_tb_perfil.

ai para testar coloco o seguinte codigo

  Session session = HibernateUtil.getSession();
        Transaction tx = session.beginTransaction();
        Usuario u = new Usuario();
        u.setEmail("jose");
        Perfil p =new Perfil();
        p.setPerfil("teste");
        System.out.print("o perfil do caba eh:"+p);
            u.getPerfil().add(p);
          session.save(u);
        tx.commit();
        session.close();

Meus pojos
Usuario

  private int id_tb_usuario;
    private String nome;
    private String matricula;
    private String email;
    private String telefone;
    private String senha;
    private Set<Perfil> perfil;
gets and sets;...


Perfil
  private int id_tb_perfil;
    private String perfil;
    private Set<Usuario> usuario;
gets and sets...

esta dando erro de NULL POINTER EXCEPTION
NESTE TRECHO…
u.getPerfil().add§;
ja tentei mostrar os dados do perfil e mosrta sem erro… me ajudem !!!

Eu acho q o que ocorre é o seguinte, no seu getPerfil() ele n retorna um Set vazio, mas sim null, logo antes dessa linha tente algo assim:

u.setPerfil(new HashSet());
u.getPerfil().add§