提问人:Adam Obaidi 提问时间:9/27/2021 最后编辑:João DiasAdam Obaidi 更新时间:9/27/2021 访问量:89
使用 Optional 管理我的 Hibernate POJO NullPointerException
Managing My Hibernate POJO NullPointerException Using Optional
问:
嗨,大家好,我对将 Optional 与 Java POJO Hibernate 一起使用有点困惑。作为我们总是抱怨的 Java 开发人员,您需要在访问该字段之前检查 null。
我读过一些关于这个问题的帖子,但无法掌握它。
问题是,如果我们正在构建一个 restful API,我们正在处理 JSON,因此我们必须使用 jackson-datatype-jdk8 来支持。但是实现看起来有点不像我想象的那么干净。NullPointerException
Optional
首先,我们需要在注册 ObjectMapper 时注册 JDK8:
private ObjectMapper registerJdkModuleAndGetMapper() {
ObjectMapper objectMapper = new ObjectMapper();
Jdk8Module module = new Jdk8Module();
module.configureAbsentsAsNulls(true);
objectMapper.registerModule(module);
return objectMapper;
}
其次,我们必须在实例 varObj 构造函数上使用注解:@JsonProperty
public Person(
@JsonProperty("firstName") String firstName,
@JsonProperty("lastName") String lastName,
@JsonProperty("age") int age,
@JsonProperty("address") Optional<Address> address,
@JsonProperty("phone") Optional<String> phone) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.address = address;
this.phone = phone;
}
作为中级程序员,我们总是寻求前辈的帮助和提示。谁能帮帮我?非常感谢
答:
-1赞
João Dias
9/27/2021
#1
注册是强制性的,因此没有解决方法。Jdk8Module
关于 ,您可以删除它们,因为 Java 属性的名称与您在 中的配置完全相同。@JsonProperty
@JsonProperty
评论
0赞
bananas
9/29/2021
-1 因为你也可以通过 DTO 曝光,所以请添加为什么他可能有其他计划,比如他通过其他媒体曝光(另一个话题)
0赞
João Dias
9/29/2021
对不起,但你的评论是什么意思?我不明白 DTO 如何解决所讨论的主题。而且我也不明白你的“请补充一下,为什么他可能有其他计划,比如他通过其他媒体曝光(另一个话题)”的说法。你能解释一下吗?谢谢。
评论