Для односторонних отношений между родителями и детьми вам нужен @JoinTable для отображения между ними

я есть устаревшая база данных, которую я использую EJB3 для моделирования. База данных находится в довольно плохом состоянии, и у нас есть некоторые необычные ограничения на то, как мы вставляем в БД. Теперь я хочу смоделировать базу данных в иерархии, которая согласуется со структурой БД, но я хочу иметь возможность вручную вставлять каждую сущность по отдельности без менеджера постоянства, пытающегося сохранить потомки сущностей.

Я пытаюсь что-то вроде следующего (шаблон не учитывается):

@Entity
@Table(name = "PARENT_TABLE")
public class Parent {
    @Id
    @Column(name = "ID")
    int id;

    @OneToMany
    List<Child> children;
}


@Entity
@Table(name = "CHILD_TABLE")
public class Child {
    @Id
    @Column(name = "ID")
    int id;   
}

Теперь это вызывает исключение:

java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST

Сейчас язнать объект не помечен как PERSIST - я не хочу, чтобы EntityManager сохранял его! Я хочу быть в состоянии сохранить родителя сначала, а потом ребенка - но не вместе. Есть веские причины хотеть сделать это таким образом, но, похоже, не хочет играть.

Ответы на вопрос(1)

Ваш ответ на вопрос