1

这里我有 2 个值示例价格和折扣价格。当我使用 mysql

select price, discountPrice from stockItem where price = discountPrice;

我没有找到记录。

在我改为

select price, discountPrice from stockItem where FORMAT(price,2) = FORMAT(discountPrice,2);

我能够查询出记录。

我可以知道在hibernate中如何用小数点后2位写Detachedcriteria吗?

这是当前代码:

DetachedCriteria criteria = DetachedCriteria.forClass(StockItem.class);
criteria.add(Restrictions.eqProperty("price", "discountPrice"));
return getHibernateTemplate().findByCriteria(criteria);

有办法写吗?

在 mysql 中我们看到是 10.70。我只怀疑实际数字是 10.700000000000001。有没有办法识别这个?

谢谢

4

1 回答 1

0

尝试:

criteria.add(Restrictions.sqlRestriction("FORMAT(price,2) = FORMAT(discountPrice,2)"));

通过使用 sqlRestriction() 您可以将文字 SQL 片段插入到查询中

于 2013-01-28T04:25:31.253 回答