如何在hibernate中完成MySQL中可用的自定义排序功能?
select * from pet order by field(species, 'cat', 'dog', 'bird');
出于某些商业原因,我需要强制执行自定义订购。
PS-我是hibernate的新手。
答案 0 :(得分:0)
我最终写了这样的HQL
commaDelimitedSpecies = "'cat', 'dog', 'bird'";
orderBySpecies = " ORDER BY FIELD(species, " + commaDelimitedSpecies + ") DESC";
Query q = getSession().createQuery("FROM PetModel pet" + orderBySpecies);
答案 1 :(得分:0)
使用Spring HibernateDAO:
getHibernateTemplate().findByNamedParametersQuery(
"FROM MyEntity me WHERE me.id IN :ids ORDER BY FIELD(id, :ids)", new String[] {"ids"}, new Object[] {uuidList.toArray()},uuidList.size()
);
注意:getHibernateTemplate返回 org.springframework.orm.hibernate3.HibernateTemplate
的实例