3
我正在使用hibernate分离条件从表(Oracle数据库)中获取结果。我需要通过升序某列来获取结果顺序。该列包含数字,但数据类型为varchar。如果我们不为一列应用to_number()
,那么Oracle将按照顺序进行ASCII比较。所以,我需要应用to_number()
来排序结果,因为列包含所有数字,但数据类型为varchar。请从下面的查询,我使用如何在Hibernate标准中为列应用to_number?
public List<EntityClass> getResults(final String someinput) throws Exception {
DetachedCriteria criteria = DetachedCriteria.forClass(EntityClass.class);
criteria.add(Restrictions.eq("input", someinput));
criteria.addOrder(Order.asc("someId")); // **here id column is of varchar type**.
List<EntityClass> results= this.getHibernateTemplate().findByCriteria(criteria);
return results;
}
criteria.addOrder(Order.asc("someId"));
- 在这里我需要申请to_number
。我们可以使用SQL查询轻松实现,但我应该只使用条件查询。
请帮我怎么做到这一点?
嗨,谢谢你的回复。我不使用注释。我怎样才能在hbm中指定这个?请帮忙.. – user1016403
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-column(我个人建议切换到注释,除非你有很好的理由不)。 –
工作得很好。请注意,公式中指定的“someId”应该是列名称 –