8

在由 hibernate 管理的实体上拥有一个长字段对于 null 值可能是危险的。当 Hibernate 尝试将 null 设置为原语时,将引发异常。

最好的解决方案应该是使用 Long 而不是 long,因此可以将 null 分配给 Long 字段。

但是,我正在做一个不能使用 Long 或 Integer 类型的项目。我想知道是否有一种方法可以覆盖休眠类型以使用 nullSafe 方法或类似的方法。

4

2 回答 2

2

最后,我已经实现UserType了休眠,如下所述:http: //docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ch06.html#types-custom

于 2015-02-17T14:21:21.583 回答
-1

我总是使用封装的类类型,但如果你不能,你可以在持久化之前检查实体属性,例如:

if (entity.getAttribute == null){
entity.setAttribute(0); //case of long, int...
}
于 2015-02-06T12:54:32.603 回答