【问题标题】:unable insert data into two tables using spring data jpa无法使用spring data jpa将数据插入两个表
【发布时间】:2017-09-16 11:11:10
【问题描述】:

我是 Spring 数据 JPA 的新手。我有两个表 infodetailsdetailsCPDT_CP_ID 是外键,CPDT_ID 是主键。 infoCP_ID 是主键。

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 表,它在信息表中。 请帮我看看我的错误在哪里。

提前致谢

【问题讨论】:

    标签: java hibernate jpa spring-boot spring-data-jpa


    【解决方案1】:

    @JoinColumn 中,您应该指定引用主表的列的名称,即具有指向主表ID 的外键的列。因此,在您的情况下,如果details 中的CPDT_CP_ID 具有info 表的CP_ID 的外键,您应该输入:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-25
      • 2021-01-01
      • 2023-01-24
      • 1970-01-01
      • 2019-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多