2
別のテーブルへの参照を使用して複合主キーを取得しようとしています。私は多くの話題を見ましたが、私の場合は答えはありません。外部キーを使用した埋め込みID
私のデータベースでは、owner_id
が追加されていないため、外部キーによって列が正しく作成されています。従業員がいなくても新しい記録を追加できます。 私はクラスA
データベースとして
SQLLite
を使用する:あなたはかなり接近していた
@Column(name = "filename", unique = true)
private String filename;
@EmbeddedId
private TimeSheetID id;
@MapsId("owner_id")
@JoinColumn(name = "owner_id", referencedColumnName = "employee_id")
@ManyToOne
private EmployeeeEntity employee;
クラスB
public class TimeSheetID implements Serializable{
private static final long serialVersionUID = 7469844076039968866L;
@Column(nullable = false, name = "period")
private String period;
@Column(nullable = false, name = "owner_id")
private String ownerId;
// …
}
クラスC
@Column(nullable = false)
public String getName() {
return name;
}
@Id
@Column(name = "employee_id")
public String getEmployeeID() {
return employeeID;
}
@Column(nullable = false)
public String getBusinessUnit() {
return businessUnit;
}