br.com.siam.dao.UsuarioDAOHibernate.java Source code

Java tutorial

Introduction

Here is the source code for br.com.siam.dao.UsuarioDAOHibernate.java

Source

/*
 * Cdigo-fonte do livro "Programao Java para a Web"
 * Autores: Dcio Heinzelmann Luckow <decioluckow@gmail.com>
 *          Alexandre Altair de Melo <alexandremelo.br@gmail.com>
 *
 * ISBN: 978-85-7522-238-6
 * http://www.javaparaweb.com.br
 * http://www.novatec.com.br/livros/javaparaweb
 * Editora Novatec, 2010 - todos os direitos reservados
 *
 * LICENA: Este arquivo-fonte est sujeito a Atribuio 2.5 Brasil, da licena Creative Commons,
 * que encontra-se disponvel no seguinte endereo URI: http://creativecommons.org/licenses/by/2.5/br/
 * Se voc no recebeu uma cpia desta licena, e no conseguiu obt-la pela internet, por favor,
 * envie uma notificao aos seus autores para que eles possam envi-la para voc imediatamente.
 *
 *
 * Source-code of "Programao Java para a Web" book
 * Authors: Dcio Heinzelmann Luckow <decioluckow@gmail.com>
 *          Alexandre Altair de Melo <alexandremelo.br@gmail.com>
 *
 * ISBN: 978-85-7522-238-6
 * http://www.javaparaweb.com.br
 * http://www.novatec.com.br/livros/javaparaweb
 * Editora Novatec, 2010 - all rights reserved
 *
 * LICENSE: This source file is subject to Attribution version 2.5 Brazil of the Creative Commons
 * license that is available through the following URI:  http://creativecommons.org/licenses/by/2.5/br/
 * If you did not receive a copy of this license and are unable to obtain it through the web, please
 * send a note to the authors so they can mail you a copy immediately.
 *
 */
package br.com.siam.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import br.com.siam.entidade.Usuario;

public class UsuarioDAOHibernate implements UsuarioDAO {

    private Session session;

    public void setSession(Session session) {
        this.session = session;
    }

    public void salvar(Usuario usuario) {
        usuario.setId(null);
        //      try {
        //         throw new DAOException("A senha no foi confirmada corretamente.");
        //      } catch (DAOException e) {
        //      }
        this.session.saveOrUpdate(usuario);
    }

    public void atualizar(Usuario usuario) {
        if (usuario.getPermissao() == null || usuario.getPermissao().size() == 0) {
            Usuario usuarioPermissao = this.carregar(usuario.getId());
            usuario.setPermissao(usuarioPermissao.getPermissao());
            this.session.evict(usuarioPermissao);
        }
        this.session.update(usuario);
    }

    public void excluir(Usuario usuario) {
        this.session.delete(usuario);
    }

    public Usuario carregar(Integer codigo) {
        //TODO o hibernate nao conseguira fazer a carga caso seja passado o Usuario
        // no parametro, tem que ser diretamente a chave (integer)
        return (Usuario) this.session.get(Usuario.class, codigo);
    }

    public Usuario buscarPorLogin(String login) {
        String hql = "select u from Usuario u where u.login = :login";
        Query consulta = this.session.createQuery(hql);
        consulta.setString("login", login);

        //TODO mostrar primeiramente com o list e depois apresentar o uniqueResult
        return (Usuario) consulta.uniqueResult();
    }

    @SuppressWarnings("unchecked")
    public List<Usuario> listar() {
        return this.session.createCriteria(Usuario.class).list();
    }
}