【发布时间】:2009-02-25 10:24:58
【问题描述】:
我有一个遗留数据库,我正在使用 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 保留它!我希望能够先坚持父母,然后是孩子——但不是在一起。想要这样做是有充分理由的,但它似乎不想玩。
【问题讨论】:
标签: java orm jpa persistence java-ee-5