/**
* 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.hibernate;
import org.musicrecital.dao.RoleDao;
import org.musicrecital.model.Role;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
/**
* This class interacts with hibernate session to save/delete and
* retrieve Role objects.
*
* @author <a href="mailto:bwnoll@gmail.com">Bryan Noll</a>
* @author jgarcia (updated to hibernate 4)
* @author <a href="mailto:dlwhitehurst@gmail.com">David L. Whitehurst</a>
* @version $Id: 8643da65cbb8ccad1149f6f9326cdea3eb04d1b2 $
*/
@Repository
public class RoleDaoHibernate extends GenericDaoHibernate<Role, Long> implements RoleDao {
/**
* Constructor to create a Generics-based version using Role as the entity
*/
public RoleDaoHibernate() {
super(Role.class);
}
/**
* {@inheritDoc}
*/
public Role getRoleByName(String rolename) {
List roles = getSession().createCriteria(Role.class).add(Restrictions.eq("name", rolename)).list();
if (roles.isEmpty()) {
return null;
} else {
return (Role) roles.get(0);
}
}
/**
* {@inheritDoc}
*/
public void removeRole(String rolename) {
Object role = getRoleByName(rolename);
Session session = getSessionFactory().getCurrentSession();
session.delete(role);
}
}