package org.manalith.ircbot.plugin.alias; import java.util.Collections; import java.util.List; import javax.annotation.Resource; import org.hibernate.SessionFactory; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @Repository public class AliasDao { @Resource private SessionFactory sessionFactory; @Transactional public void save(Alias alias) { sessionFactory.getCurrentSession().save(alias); } @Transactional public void delete(Alias alias) { sessionFactory.getCurrentSession().delete(alias); } @Transactional(readOnly = true) public Alias findByWord(String alias) { @SuppressWarnings("unchecked") List<Alias> aliases = Collections .checkedList( sessionFactory .getCurrentSession() .createQuery( "from Alias where alias=:alias order by date desc") .setParameter("alias", alias).list(), Alias.class); if (CollectionUtils.isEmpty(aliases)) return null; else return aliases.get(0); } }