Estou Tendo Problemas para Salvar os Dados com Minha Classe DAO + Hibernate?

Ola Pessoal Estou perdido aqui, nao tenho ideia como salvar os Dados no Banco.
Estou Utilizando o Hibernate, e criei a classe DAO agora nao tenho ideia onde estou errando, agradeco a atencao e ajuda, um abraco.

Este e meu HibernateUtil…

public final class HibernateUtil   
{   
    private static SessionFactory sessionFactory;
  
    private static SessionFactory FabricaSessoes()
    {   
        try
        {
            // Se a Sesso For Nula Criar a Sessao.
            if(sessionFactory == null)
                sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();             
        }
        catch(Exception Erro)
        {
            JOptionPane.showMessageDialog(null, "Erro de Fabrica de Sessao. ");
        }
       return sessionFactory;  
    }

    public static Session getSessao()
    {
        return sessionFactory.openSession();
    }
}  

Esta e a Minha Classe DAO …

public class OperacoesDAO <Dados> implements InterfaceDAO {

    private final Session sessao;
    Transaction transacao = null;

    private Dados dados;

    public OperacoesDAO(Dados dados)
    {
        this.sessao = HibernateUtil.getSessao();
        this.dados  = dados;
    }

    public void objInserir() 
    {
        try
        {
            transacao   = sessao.beginTransaction();
            sessao.save(dados);
            transacao.commit();
        }
        catch(HibernateException Erro)
        {
            JOptionPane.showMessageDialog(null, "Ocorreu Erro ao Inserir os Dados !");
            transacao.rollback();
        }

    }

    public void objExcluir() {

    }

    public void objAtualizar() {

    }
    
   
}

Estou Tentando Salvar Assim …

   // ------------- Metodo para Criacao de Usuario Master ---------------------
    public void PGerarUsuario()
    {

        // Salvando o Usuario Administrador do Sistema.
        try
        {
            us_Grupo   objGrupo     = new us_Grupo();

            objGrupo.setGru_descricao("ADMINISTRADOR");
            OperacoesDAO objDAOGrupo = new OperacoesDAO(objGrupo);
            objDAOGrupo.objInserir();

            us_Usuario objUsuario   = new us_Usuario();

            // Populando a Tabela.
            objUsuario.setUsu_login(edLogin.getText());
            objUsuario.setUsu_senha(passRedigite.getSelectedText());

            OperacoesDAO objDAO = new OperacoesDAO(objUsuario);
            objDAO.objInserir();
        }
        catch(Exception Erro)
        {
            JOptionPane.showMessageDialog(null, "Erro ao Salvar os Dados do Usuario !");
        }
        

    }

Nao Esta Salvando, tenho certeza de que estou esquecendo de algo, agradeco a todos …

Oi, esta retornando algum erro? posta as entidades us_Grupo e us_Usuario

olá rick.
O erro está no hibernate util.
Você está tentando simular um singleton ou algo do tipo, então você deixou o construtor da sua session factory privado certo?
e para obter a session você o getSessao();
veja que o getSessao retorna a variavel sessionFactory, mas ela não foi instanciada, pq seu construtor é privado então seu valor é null, por isso não é possivel salvar o objeto. Ele é da um NullPointerException.
então existe algumas formas de contornar isso:

Uma alternativa seria:
inicializar a sessionFactory em um bloco estático

e a outra seria chamar o seu construtor no getSessao(), já que ele é privado, apenas os métodos internos da classe podem chama-lo.

public static Session getSessao()
    {
        return FabricaSessoes().openSession();
    }

Bom isso irá resolver o seu problema. até +

Ai Vai a Classe us_Grupo

// *****************************************************************************
// Definindo a Tabela.
// *****************************************************************************
@Entity
@Table( name = "Us_Grupo")

public class us_Grupo
{

    @Id
    @SequenceGenerator(name="generator_us_grupo",sequenceName="sequence_us_grupo")
    @GeneratedValue(generator="generator_us_grupo")

    private long gru_codigo;

    @Column(name ="gru_descricao",  length = 30 )
    private String gru_descricao;


Getters, Setters .....

Ai Vai a Classe us_Usuario

// *****************************************************************************
// Definindo a Tabela.
// *****************************************************************************
@Entity
@Table( name = "Us_Usuario")

public class us_Usuario
{
    @Id
    @SequenceGenerator(name="generator_us_usuario",sequenceName="sequence_us_usuario")
    @GeneratedValue(generator="generator_us_usuario")

    private long usu_codigo;

    //Gravando o Idioma de Preferencia do Usuario.
    private long cod_idioma_usuario;

    @Column(name ="usu_login", length = 30)
    private String usu_login;

    @Column(name="usu_senha",  length = 25)
    private String usu_senha;

    @OneToOne
    @Cascade(CascadeType.ALL)
    @JoinColumn( name = "cod_grupo_usuario")
    private us_Grupo grupo;

Getters, Setters .....

Continua Dando o Erro, na verdade e o tratamento de Excessao que fiz …

Ao Tentar Salvar o Novo Usuario da o Erro aqui no Final

        }
        catch(Exception Erro)
        {
            JOptionPane.showMessageDialog(null, "Erro ao Salvar os Dados do Usuario !");
        }

Esta Dando o Seguinte Erro: !java.lang.NullPointerException ???

Ta faltando implementar Serializable nas duas entidades…
Quanto a exception é por que ta faltando inicializar o sessionFactory nessa linha aí:

inicialize com o resultado do metodo fabricaSessoes assim:

Tambem tem que alterar os tipos dos ids das duas entidades nao aceitam valores nulos por serem tipos primitivos (que começam com minusculo), troca pra o long para Long, com a letra L maiuscula.

Faz essas alteracoes que vai funcionar