Java 如何将“24cd2ec2-6674-4aa2-a761-1b0a953124ba”(字符串对象)转换为BigDecimal

Java 如何将“24cd2ec2-6674-4aa2-a761-1b0a953124ba”(字符串对象)转换为BigDecimal,java,hibernate,rest,spring-boot,spring-mvc,Java,Hibernate,Rest,Spring Boot,Spring Mvc,我有一个DB表MyTable,它有一个VARCHAR20类型的列myColumn。我有一个SpringMVC应用程序,它在控制器级别接收POST请求。我试图捕获请求的事务ID,并将其设置为实体对象中的一个字段,该字段的类型为BigDecimal。我得到一个java.lang.NumberFormatException 例如: String transactionID = "24cd2ec2-6674-4aa2-a761-1b0a953124ba"; entity.setTransactionID

我有一个DB表MyTable,它有一个VARCHAR20类型的列myColumn。我有一个SpringMVC应用程序,它在控制器级别接收POST请求。我试图捕获请求的事务ID,并将其设置为实体对象中的一个字段,该字段的类型为BigDecimal。我得到一个java.lang.NumberFormatException

例如:

String transactionID = "24cd2ec2-6674-4aa2-a761-1b0a953124ba";
entity.setTransactionID(new BigDecimal(transactionID));
entity.save();

解决这个问题的任何方法都会有帮助

要将字符串转换为BigDecimal,字符串应包含可转换为十进制的数值

例如:-

如果相反

String ID= "12-fe3.45";
System.out.println(new BigDecimal(ID)); // throw java.lang.NumberFormatException

十进制数字中没有连字符。即使您将其视为十六进制,它也不是一个有效的数字。您希望它生成什么数字,为什么?如果您的实体具有BigDecimal类型,您首先如何将guid输入数据库?为什么两个都不使用相同的类型?由于此异常,我无法将实体持久化到数据库中。我不清楚为什么DB字段是VARCHAR类型,而实体类中声明的字段是BIGDECIMAL类型@azurefrogLet再次尝试:您希望24cd2ec2-6674-4aa2-a761-1b0a953124ba是什么号码?我假设它不是42?如果您想保存guid,请在entity类中使用String而不是Bigdecimal。谢谢。这个信息很有用@DASH@user8782239如果有帮助,请考虑将其标记为已接受的答案。
String ID= "12-fe3.45";
System.out.println(new BigDecimal(ID)); // throw java.lang.NumberFormatException