gpt4 book ai didi

java - NullPointerException @一对一映射

转载 作者:行者123 更新时间:2023-12-01 15:36:10 25 4
gpt4 key购买 nike

大家好,我有一个小问题,需要使用 JPA 2 持久性与 EclipseLink 供应商进行一对一映射,也许你们中的任何人都能够提供帮助。

我想将一个表映射到另一个表,但第二个表中的字段是可选的。所以我为第一个表创建了@Entity:

放大器等级

private AmpApInfo ampApInfo;
private String apid;


@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public String getApid() {
return this.apid;
}


public void setApid(String apid) {
this.apid = apid;
}

@OneToOne
@JoinColumn(name="apid")
public AmpApInfo getAmpApInfo() {

return this.ampApInfo;

}

public void setAmpApInfo(AmpApInfo ampApInfo) {
this.ampApInfo = ampApInfo;
}

第二个表的@Entity

AmpApInfo 类

    private String apid;
private Amp amp;
private String prodOrderNo;

public AmpApInfo() {
}



@OneToOne(optional=true, mappedBy="ampApInfo")
public Amp getAmp() {
return this.amp;
}

public void setAmp(Amp amp) {
this.amp = amp;
}

@Id
public String getApid() {
return apid;
}
public void setApid(String apid) {
this.apid = apid;
}

@Column(name="prod_order_no")
public String getProdOrderNo() {
return this.prodOrderNo;
}

public void setProdOrderNo(String prodOrderNo) {
this.prodOrderNo = prodOrderNo;
}

现在当我想找到 prodOrderNo 时

    public Amp selectProdInfo(String name) {
// TODO Auto-generated method stub


Amp amp = Transactions.getEntityManager().find(Amp.class, name.trim());

System.out.println("order number" + amp.getAmpApInfo().getProdOrderNo());

return amp;
}

我期望得到 null,因为它不在那里,但我在线上得到了 java.lang.NullPointerException

  System.out.println("order number" + amp.getAmpApInfo().getProdOrderNo());

谁能帮忙???

最佳答案

amp 为 null 或 amp.getAmpApInfo() 返回 null,并且您正在尝试调用它们的方法。

关于java - NullPointerException @一对一映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8822619/

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