userdaohibernate.java

来自「Spring2.0宝典」· Java 代码 · 共 59 行

JAVA
59
字号
package org.yeeku.dao.hibernate;

import java.util.List;

import org.springframework.orm.ObjectRetrievalFailureException;
import org.yeeku.dao.UserDAO;
import org.yeeku.model.User;

/**
 * This class interacts with Spring's HibernateTemplate to save/delete and
 * retrieve User objects.
 *
 * <p>
 * <a href="UserDAOHibernate.java.html"><i>View Source</i></a>
 * </p>
 *
 * @author <a href="mailto:matt@raibledesigns.com">Matt Raible</a>
 *   Modified by <a href="mailto:dan@getrolling.com">Dan Kibler</a>
 *   Extended to implement Acegi UserDetailsService interface by David Carter david@carter.net
*/
public class UserDAOHibernate extends BaseDAOHibernate implements UserDAO{
    /**
     * @see org.leecode.dao.UserDAO#getUser(java.lang.String)
     */
    public User getUser(String username) {
        User user = (User) getHibernateTemplate().get(User.class, username);
        if(user == null){
        	log.warn("user '" + username + "' not found...");
        }
        return user;
    }

    /**
     * @see org.leecode.dao.UserDAO#getUsers(org.leecode.model.User)
     */
    public List getUsers(User user) {
        return getHibernateTemplate().find("from User u order by upper(u.username)");
    }

    /**
     * @see org.leecode.dao.UserDAO#saveUser(org.leecode.model.User)
     */
    public void saveUser(final User user) {
        if (log.isDebugEnabled()) {
            log.debug("user's id: " + user.getUsername());
        }        
    	getHibernateTemplate().saveOrUpdate(user);
        // necessary to throw a DataIntegrityViolation and catch it in UserManager
        getHibernateTemplate().flush();
    }

    /**
     * @see org.leecode.dao.UserDAO#removeUser(java.lang.String)
     */
    public void removeUser(String username) {
        getHibernateTemplate().delete(getUser(username));
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?