Versão atual:

Classe criteria

Pessoa estou com um problema na classe criteria do hibernate.

Tenho duas classes - classe categoria e classe filme:

possuo muitas categorias cadastradas oque eu não consigo é cadastrar um filme porque quando vou buscar o id da categoria(Filme tem uma chave estrangeira de categoria) ela vem como null;

meu método de salvar.

public void cadastraFilme() {

        CategoriaDAO categoriaDAO = new CategoriaDAO();

        Filme filme = new Filme();
        FilmeDAO filmeDAO = new FilmeDAO();

        String[] filmes = { "senhor dos anéis", "herry", "cezar" };

        Date[] datas = { new Date(2001 - 01 - 01), new Date(2006 - 02 - 05),
                new Date(2000 - 12 - 07) };

        for (int i = 0; i < 3; i++) {

            filme.setAno(datas[i]);
            filme.setDescricao(filmes[i]);
            filme.setCategoria(categoriaDAO.buscar(1));
            filmeDAO.salvar(filme);

        }

Ai no exemplo eu estou pegando a categoria de ID=1, isso é irrelevante posso pegar qualquer uma, o problema é que não consigo pegar nenhuma. Da uma olhada no select que faço para buscar o id de categoria.

public Categoria buscar(int codigo) {

        Categoria categoria = null;

        try {

            this.sessao = Conexao.openSessionFactory().getCurrentSession();

            this.transacao = this.sessao.beginTransaction();

            Criteria filtro = this.sessao.createCriteria(Categoria.class);

            filtro.add(Restrictions.eq("categoria",codigo));

            categoria = (Categoria) filtro.uniqueResult();

            this.transacao.commit();

        } catch (Throwable e) {

            if (this.transacao.isActive()) {

                this.transacao.rollback();

            }

        } finally {

            try {

                if (this.sessao.isOpen()) {

                    this.sessao.close();

                }

            } catch (Throwable e) {

                System.out.println("Erro" + e.getMessage());

            }

        }

        return categoria;

    }

Eu não sei oque está errado, se fosse com sql em faria normalmente, mas eu não conheço muito a classe criteria no hibernate, onde está o erro?

Versão(1):

Ver a versão formatada

Classe criteria

Comentário

new question