Spring Data JPA(MySQL)以指数形式而不是数字形式保存String

时间:2016-01-24 04:47:50

标签: java mysql database hibernate spring-data-jpa

我使用Spring Data JPA将电话号码保存在数据库中,

在模型中我定义了这个 private String directPhone;

保存supplier.directPhone="99250397679"

在DB中,它以指数形式保存

以此格式保存direct_phone: 9.925039767E9

Supplier supplier=supplierRepository.findOne(new Long(1));

接收它时会以指数形式给我。

但我想用String形式。帮我进入String形式。 year=2005也会发生同样的事情并保存year=2005.0

2 个答案:

答案 0 :(得分:1)

首先,它不应该将字符串保存为DB中的指数。 DB中的表列是varchar(10)吗? 其次,如果你需要将这些字符串转换为你想要的字符串,你可以这样做:

删除点:

direct_phone = direct_phone.replaceAll("\\.", "");

删除'E':

direct_phone = direct_phone.replaceAll("[E]","")

答案 1 :(得分:1)

这与Spring Data没有任何关系。你也用普通的JDBC来解决这个问题。

MySQL定义了各种numeric types,你可能正在使用存储浮点数的FLOAT, DOUBLE or DECIMAL(n, m), NUMERIC(n, m)

您需要INTEGER使用yearVARCHAR使用direct_phone