The following mapping is giving an error of
A Foreign key refering db.KarateInvoice from db.KarateInvoiceDetail has the wrong number of column. should be 1
Invoice Entity:
@Id @Column(name = "id") private long id; @OneToOne @JoinColumn(name = "companyid") @Id private Company company; @Id private short fiscalYear; @OneToMany(mappedBy = "karateInvoiceDetails") private List<KarateInvoiceDetail> karateInvoiceDetails; Invoice Detail:
@Id private short seqNo; @ManyToOne @JoinColumns({ @JoinColumn(name = "karateInvoiceId"), @JoinColumn(name = "karateInvoiceCompanyId"), @JoinColumn(name = "karateInvoiceFiscalYear") }) private KarateInvoice invoice; @Id @OneToOne @JoinColumns({ @JoinColumn(name = "studentId"), @JoinColumn(name = "studentCompanyId") }) private KarateStudent student; Company Entity:
@Id private long id; Idea is to have an Invoice table with a composite of (id, fiscalyear, and companyId) and InvoiceDetail with a composite key of (seqNo, InvoiceId, InvoiceFiscalYear, and InvoiceCompanyId).