【发布时间】:2013-08-12 11:00:19
【问题描述】:
我需要在我的数据库中存储价格。我正在使用 JPA,所以我有一个这样的模型:
@Entity
@Table(name="products")
public class Product {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
@Column(name="price")
private float price;
}
问题是,当我用“4.20”之类的值填充价格表单输入时,在我的 Oracle 数据库中,我得到“4.2”,丢失了尾随零。
我该如何解决这个问题?
编辑: 因为我使用的是 JPA,所以我必须避免使用原生 Oracle 方言编写查询。要存储产品(及其价格),我只需编写类似 em.persist(product) 的内容,其中 em 是 EntityManager
【问题讨论】:
-
您希望将价格存储为 float/double - 这通常不是一个好主意。我建议切换到整数,并使用(可能是隐含的)货币+货币指数。 4.20 -> 420 (USD,2)
标签: spring oracle jakarta-ee jpa scale