grails,当字段包含空值时从数据库加载域会导致设置器失败

grails, loading domain from db when fields contains null causes setters to fail

这个问题是关于一些在数据库中被声明为双精度且通常为空的字段。 如果某些字段为空,则使用 findAllBy 接收列表会失败。 我尝试将类型更改为 Double 但是当我对它们进行算术运算时我遇到了问题。如果该值为 null,则 Double 无法决定应使用哪个转换器。 我不知道是否有任何方法可以在设置域之前转换域中的空值。 错误示例:

Caused by: org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of com.buffer.ProdBuffer.makeInquiry

您应该始终在 entities/domains 中使用 Double;除非你在工作中有 nullable: false 限制,否则这也是一个很好的做法。

但是,您需要在计算中自己处理 null,可能通过将其设为 0 或 1,您会更清楚。如需更多建议,post 代码段。