hibernate:如何在float类型上放置条件

时间:2012-11-21 03:58:03

标签: hibernate

我在实体的属性上应用标准,该属性是浮动的并且不起作用。

         Criteria crit = session.createCriteria(MyClass.class);
         float a = (float)0.2;
         crit.add(Restictions.eq("mynumber", a));

其中mynumber是我的实体

              @Column(name = "mynumber")
               private float  mynumber;

它总是给我空结果,而在我的表中有mynumber = 0.2

的行

如果我在任何其他列上放置任何其他标准,则问题仅在于此浮点类型。

任何想法可能是什么解决方案

感谢

1 个答案:

答案 0 :(得分:3)

floating个数字代表IEEE Standard 754个代表,而0.2可能会被存储为0.19999967..。这使你的比较失败,因此没有结果。

要避免此问题,请尽可能使用doubleBigDecimal