认为有一个名为“ User”的类。
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String username;
//...get、set
}
然后我尝试通过以下代码跳至用户信息编辑页面:
@GetMapping("edit")
public String edit(Model model, @RequestParam Long id) {
model.addAttribute("entity", userService.findById(id));
return "user/edit";
}
在“用户/编辑”页面中,我尝试获取正确的id值,但失败。长型id的值总是失去精度,就像id的值为“ 94105929343041536”一样,我得到的是“ 94105929343041540”。 / p>
答案 0 :(得分:0)
无论您的首页是什么,处理大的long值时Javascript,JSON和Angular都有很多问题。不幸的是,您无法更改这些值的取整方式。 在任何一种情况下,我都建议使用一个转换器在检索/存储时(使用AttributeConverter之类的)将您的长值转换为String。
@Converter
public class LongStringConverter implements AttributeConverter<Long, String> {
@Override
public String convertToDatabaseColumn(Long value) {
return Long.toString(value);
}
@Override
public Long convertToEntityAttribute(String dbData) {
return Long.parseLong(dbData);
}
}
然后您可以将其添加到您的id字段中:
@Convert(converter = LongStringConverter.class)
还有其他一些转换器,具体取决于您的实际用例。