Отображение внешнего ключа внутри класса Embeddable

Я использую eclipselinkдля JPA. У меня есть объект, который имеет составной ключ , созданный из двух полей. Ниже приведены мои Embeddable поля класса первичного ключа (члены ).

    @Embeddable
    public class LeavePK {
       @ManyToOne(optional = false)
       @JoinColumn(name = "staffId", nullable = false)
       private Staff staff;
       @Temporal(TemporalType.TIMESTAMP)
       private Calendar date;
       //setters and getters
    }

Моя сущность будет хранить данные об отпуске, связанные с персоналом, поэтому я пытаюсь объединить объект персонала и дату увольнения для создания составного ключа. Помимо моей логики, это не позволяет мне иметь сопоставление внешнего ключа внутри встраиваемого класса. Когда я пытаюсь использовать JPA tools --> Generate Tables From Entity , выдается ошибка, как показано ниже, что объясняет, но я ее не получаю.

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.

Значит ли это, что у меня не может быть ключа (из составного ключа ), который также является внешним ключом. Есть ли альтернативный способ выполнить эту ERM? Пожалуйста помоги. Спасибо

12
задан Ahamed 10 October 2012 в 17:44
поделиться