Tôi đang sử dụng eclipselink
cho JPA
. Tôi có một thực thể có khóa tổng hợp được chế tạo từ hai trường. Sau đây là các trường Có thể nhúng của lớp chính (thành viên) của tôi.Ánh xạ khóa ngoài bên trong lớp có thể nhúng
@Embeddable
public class LeavePK {
@ManyToOne(optional = false)
@JoinColumn(name = "staffId", nullable = false)
private Staff staff;
@Temporal(TemporalType.TIMESTAMP)
private Calendar date;
//setters and getters
}
Thực thể của tôi sẽ lưu giữ dữ liệu liên quan đến nhân viên, vì vậy tôi đang cố gắng kết hợp đối tượng nhân viên và để ngày tạo khóa tổng hợp. Ngoài logic của tôi, nó không cho phép tôi có một ánh xạ khóa ngoài trong lớp nhúng được. Khi tôi cố gắng sử dụng các công cụ JPA -> Tạo bảng từ thực thể, nó cho lỗi như dưới đây, điều này giải thích, nhưng tôi không nhận được nó.
org.eclipse.persistence.exceptions.ValidationException
Exception Description: The mapping [staff] from the embedded ID class [class rs.stapp.entity.LeavePK] is an invalid mapping for this class. An embeddable class that is used with an embedded ID specification (attribute [leavePK] from the source [class rs.stapp.entity.Leave]) can only contain basic mappings. Either remove the non basic mapping or change the embedded ID specification on the source to be embedded.
Có nghĩa là, tôi không thể có khóa (từ khóa tổng hợp) cũng là khóa ngoại. Có cách nào khác để thực hiện ERM này không? Hãy giúp tôi. Cảm ơn