/*
* Copyright (c) JForum Team. All rights reserved.
*
* The software in this package is published under the terms of the LGPL
* license a copy of which has been included with this distribution in the
* license.txt file.
*
* The JForum Project
* http://www.jforum.net
*/
package net.jforum.repository;
import java.util.List;
import net.jforum.entities.Group;
import net.jforum.entities.User;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import br.com.caelum.vraptor.ioc.Component;
/**
* @author Rafael Steil
*/
@Component
public class GroupRepository extends HibernateGenericDAO<Group> implements Repository<Group> {
public GroupRepository(Session session) {
super(session);
}
@SuppressWarnings("unchecked")
public List<Group> getAllGroups() {
return session.createCriteria(this.persistClass).list();
}
public Group getByName(String groupName) {
return (Group) session.createCriteria(this.persistClass)
.add(Restrictions.eq("name", groupName))
.uniqueResult();
}
@Override
public void remove(Group group) {
List<User> users = group.getUsers();
for(User user : users){
List<Group> groups = user.getGroups();
groups.remove(group);
session.save(user);
}
super.remove(group);
}
}