Отношение JPA ManyToMany с составным ключом возвращает ноль для идентификаторов - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть связь между двумя сущностями с отношением 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<>();    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...