У меня есть связь между двумя сущностями с отношением ManyToMany и составным ключом. Вы можете увидеть код ниже. Проблема в том, что у меня проблема в том, что сущности Driver и Organization получают нулевые значения для своих идентификаторов, и я думаю, что проблема связана с моими аннотациями JPA для связи между классами.
Возможно, я сделал что-то не так с аннотациями JPA?
@Embeddable
public class EmploymentKey implements IEmploymentKey, Serializable {
@ManyToOne(targetEntity = Driver.class, cascade = CascadeType.ALL)
@JoinColumn(name = "driver_id")
private IDriver driver;
@ManyToOne(targetEntity = Organization.class, cascade = CascadeType.ALL)
@JoinColumn(name = "organization_id")
private IOrganization organization;
}
@Entity
@AssociationOverrides({
@AssociationOverride(name = "employmentKey.driver",
joinColumns = @JoinColumn(name = "driver_id")),
@AssociationOverride(name = "employmentKey.organization",
joinColumns = @JoinColumn(name = "organization_id")) })
public class Employment implements IEmployment {
@EmbeddedId
private EmploymentKey employmentKey = new EmploymentKey();
private Date since;
private boolean isActive;
}
@Entity
public class Driver extends PlatformUser implements IDriver {
@OneToMany(targetEntity = Employment.class, cascade = CascadeType.ALL, mappedBy = "employmentKey.driver")
private Collection<IEmployment> employments = new ArrayList<>();
}
@Entity
public class Organization implements IOrganization {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany(targetEntity = Employment.class, cascade = CascadeType.ALL, mappedBy = "employmentKey.organization")
private Collection<IEmployment> employments = new ArrayList<>();
}