mysql在hibernate中按字段顺序排序

时间:2016-04-07 16:04:34

标签: java hibernate orm

如何在hibernate中完成MySQL中可用的自定义排序功能?

select * from pet order by field(species, 'cat', 'dog', 'bird');

出于某些商业原因,我需要强制执行自定义订购。

PS-我是hibernate的新手。

2 个答案:

答案 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

的实例