hibernate spring jpa中的双向一对一

class Transaction implements Serializable {


    @OneToOne(mappedBy = "transaction")

    @JoinColumn(name = "invoice_id", nullable = false)

    private InvoiceDetails invoice;


    // some other columns, getter and setter

}


class InvoiceDetails implements Serializable {


    @OneToOne(mappedBy = "invoice", fetch = FetchType.LAZY)

    @JoinColumn(name = "transaction")

    private Transaction transaction;


    // some other column and getter setter

}

编译时出现错误 - Unknown mappedBy in: com.project.model.Transaction.invoice, referenced property unknown: com.project.model.InvoiceDetails.transaction


但是,当我mappedBy = "invoice"从 InvoiceDetails 中删除 时,它会编译。但是,交易表中有一列引用了 InvoiceDetails。InvoiceDetails 中有一个列用于存储交易中的 Id。


我还没有尝试获取数据。我现在只看到数据库中的列。


天涯尽头无女友
浏览 184回答 1
1回答

慕村225694

当您在 中有双向关系时JPA,您应该只mappedBy在其中一个属性中进行设置。没有的mappedBy将有一列带有外键约束的表中的关系,而另一个将没有该关系的任何列。因为mappedBy表示此关系由您在关系另一侧指定的属性处理。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java