<分区>
我可以在 hibernate 实体的字段中使用 Optional 吗?也许有一些自定义用户类型?
我知道我可以在使用 AccesType.FIELD
的方法中使用它(无论如何我都使用 AccesType.FIELD
)。
我为什么要这个?好吧,我想尽可能远离空值。
<分区>
我可以在 hibernate 实体的字段中使用 Optional 吗?也许有一些自定义用户类型?
我知道我可以在使用 AccesType.FIELD
的方法中使用它(无论如何我都使用 AccesType.FIELD
)。
我为什么要这个?好吧,我想尽可能远离空值。
最佳答案
您不应该将 Optional
用作类中的字段(无论是否用于 Hibernate)。
如 Javadoc 所述,它是一个基于值的类,因此不可序列化,并且使用引用相等性 (==) 和身份哈希码会产生不可预测的结果。
相反,您可以存储目标类的实例(在关系数据库中可以为 null),并从访问器返回一个 Optional(不是 getter,Hibernates 希望返回与字段相同的类,如果我没记错的话).
希望这会有所帮助。
关于实体字段中的 Java 8 可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36173984/