gpt4 book ai didi

java - if (specialmarkId != null) {.....} 被忽略

转载 作者:行者123 更新时间:2023-11-30 09:09:00 25 4
gpt4 key购买 nike

我正在使用使用 Java 1.8 的 Netbeans 8 自动生成的 JPAController

public void create(Physical physical) {
if (physical.getTalentCollection() == null) {
physical.setTalentCollection(new ArrayList<Talent>());
}
EntityManager em = null;
try {
em = getEntityManager();
em.getTransaction().begin();
Specialmark specialmarkId = physical.getSpecialmarkId();
System.out.println(specialmarkId+ "...nullValue");
if (specialmarkId != null) {
System.out.println(specialmarkId+ "...ain't right");
specialmarkId = em.getReference(specialmarkId.getClass(), specialmarkId.getId());
physical.setSpecialmarkId(specialmarkId);
}
.....
}

在物理对象创建过程中,Specialmark(物理对象的一部分)是可选的。

它可以有一个值或为空。

物理表中的

Specialmark 允许您使用空值。

Specialmark 为 null 时,应该跳过 if (specialmarkId != null) {...}。相反,它被忽略并继续。

错误信息是

"... An instance of a null PK has been incorrectly provided for this find operation.
at db.jpa.PhysicalJpaController.create(PhysicalJpaController.java:57)"

System.out.println(specialmarkId+ "...nullValue");
output "null...nullValue" it shows specialmarkId value is null

System.out.println(specialmarkId+ "...ain't right");

输出 "null...ain't right" 显示 if (specialmarkId != null) {...} 甚至 specialmarkId< 都被忽略了 为空。

为什么 (specialmarkId != null) {...} 不起作用?

最佳答案

我猜 specialmarkId 并不是真正的 null,但是 specialmarkId.toString() 被覆盖以返回字符串 "null"

代替

System.out.println(specialmarkId+ "...nullValue");

尝试类似的东西

System.out.println((specialmarkId != null?
specialmarkId.toString() + "(not null)": "(this IS REALLY NULL)")
+ "...nullValue");

关于java - if (specialmarkId != null) {.....} 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23259555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com