Java tutorial
/** * Copyright 2014 David L. Whitehurst * * Licensed under the Apache License, Version 2.0 * (the "License"); You may not use this file except * in compliance with the License. You may obtain a * copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific * language governing permissions and limitations under the * License. * */ package org.musicrecital.dao; import org.musicrecital.model.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * User Data Access Object (GenericDao) interface. * * @author <a href="mailto:matt@raibledesigns.com">Matt Raible</a> * @author <a href="mailto:dlwhitehurst@gmail.com">David L. Whitehurst</a> * @version $Id: bd9afc1b7b6e90627d4aea496df93323ed64d0a3 $ */ public interface UserDao extends GenericDao<User, Long> { /** * Gets users information based on login name. * @param username the user's username * @return userDetails populated userDetails object * @throws org.springframework.security.core.userdetails.UsernameNotFoundException thrown when user not * found in database */ @Transactional UserDetails loadUserByUsername(String username) throws UsernameNotFoundException; /** * Gets a list of users ordered by the uppercase version of their username. * * @return List populated list of users */ List<User> getUsers(); /** * Saves a user's information. * @param user the object to be saved * @return the persisted User object */ User saveUser(User user); /** * Retrieves the password in DB for a user * @param userId the user's id * @return the password in DB, if the user is already persisted */ @Transactional(propagation = Propagation.NOT_SUPPORTED) String getUserPassword(Long userId); }