Спасибо за Ваш ответ. На самом деле я знаю это. Проблема в том, что мой первичный ключ состоит из нескольких частей, одна из которых является родительской сущностью. Это означает, что существует некоторая ценность, определяющая сущность, но она действительна только в контексте родителя.
ибудь знает, возможно ли установить обратную ссылку из JPA?@EmbeddedId
.
Так, например, есть сущность формы
@Entity
public class Entity1 {
@Id
@GeneratedValue
private String identifier;
private Entity1 relationToEntity1;
//Left out the getters and setters for simplicity
}
И вторая сущность со сложным встроенным идентификатором. Одна часть этого второго объекта является ссылкой на его родительский объект. Вот так:
@Entity
public class Entity2 {
@EmbeddedId private Entity2Identifier id;
//Left out the getters and setters for simplicity.
}
@Embedabble
public class Entity2Identifier {
private String firstPartOfIdentifier;
private Entity1 parent;
//Left out the getters and setters for simplicity.
}
Когда я пытаюсь сохранить такую конструкцию через JPA (реализация - EclipseLink) в базе данных, я получаю несколько исключений из формы:
<pre><code>Exception [EclipseLink-93] (Eclipse Persistence Services - 1.1.0.r3639-SNAPSHOT):
org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The table [ENTITY1] is not present in this descriptor.
Descriptor: RelationalDescriptor(test.Entity2 --> [DatabaseTable(ENTITY2)])
</code></pre>
Кто-то сталкивался с такой проблемой и имеет решение?