在由 hibernate 管理的实体上拥有一个长字段对于 null 值可能是危险的。当 Hibernate 尝试将 null 设置为原语时,将引发异常。
最好的解决方案应该是使用 Long 而不是 long,因此可以将 null 分配给 Long 字段。
但是,我正在做一个不能使用 Long 或 Integer 类型的项目。我想知道是否有一种方法可以覆盖休眠类型以使用 nullSafe 方法或类似的方法。
在由 hibernate 管理的实体上拥有一个长字段对于 null 值可能是危险的。当 Hibernate 尝试将 null 设置为原语时,将引发异常。
最好的解决方案应该是使用 Long 而不是 long,因此可以将 null 分配给 Long 字段。
但是,我正在做一个不能使用 Long 或 Integer 类型的项目。我想知道是否有一种方法可以覆盖休眠类型以使用 nullSafe 方法或类似的方法。
最后,我已经实现UserType
了休眠,如下所述:http: //docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ch06.html#types-custom
我总是使用封装的类类型,但如果你不能,你可以在持久化之前检查实体属性,例如:
if (entity.getAttribute == null){
entity.setAttribute(0); //case of long, int...
}