2017-09-16 40 views
2

我是Spring中的新數據JPA.I有兩個表infodetailsdetailsCPDT_CP_ID是外鍵,CPDT_ID是主鍵。 infoCP_ID是主鍵。無法使用彈簧數據將數據插入到兩個表中jpa

Details.java

@OneToOne(cascade = CascadeType.ALL) 
@JoinColumn(name = "CP_ID") 
private Info info; 

public Info getInfo() { 
    return info; 
} 

public Details() { 

} 

public Details setInfo(Info info) { 
    this.info= info; 
    return this; 
} ////// Others getters and setters 

info.java

@OneToOne(mappedBy = "info") 
private Details details; 

public CorpDetails getCorpDetails() { 
     return corpDetails; 
} 
public void setDetails(Details details) { 
     this.details = details; 
} 

在我controller.java

Detailsobj.setInfo(Info); 
DetailsService.saveDetails(Detailsobj); 

我得到ORA-00904:"CP_ID":無效的標識符。但是我的疑問CP_ID不是details表,它在信息表中。 請幫我,我的錯誤在哪裏。

在此先感謝

回答

0

@JoinColumn你應該指定指向主表中的列,有一個外鍵指向主表的id列的名稱。所以你的情況,如果在CPDT_CP_IDdetails一個外鍵info表的CP_ID你應該把:

@OneToOne(cascade = CascadeType.ALL) 
@JoinColumn(name = "CPDT_CP_ID") 
private Info info;