NullPointerException @ однозначное сопоставление - PullRequest
0 голосов
/ 11 января 2012

Привет всем. У меня небольшая проблема при сопоставлении один-к-одному с использованием постоянства JPA 2 с поставщиком EclipseLink, и, возможно, любой из вас сможет помочь.

Я хочу сопоставить одну таблицу с другойно поле во второй таблице не является обязательным.Итак, я создал @Entity для первой таблицы:

Класс Amp

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;
}

Я ожидаю получить нулевое значение, потому что его там нет, но я получаю исключение java.lang.NullPointerException в строке

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

Любой может помочь ???

1 Ответ

1 голос
/ 11 января 2012

Либо amp имеет значение null, либо amp.getAmpApInfo () возвращает значение null, и вы пытаетесь вызвать для них методы.

...