【发布时间】:2013-03-25 03:33:32
【问题描述】:
我有一个 @OneToMany JPA 关联,其中一个 Curriculum 实例具有多个 WorkExperience 实例。
Curriculum JPA 实体:
@Entity
public class Curriculum {
...
@OneToMany
private Set<WorkExperience> workExperiences;
...
WorkExperience JPA 实体:
@Entity
public class WorkExperience {
...
我最初想将课程及其 WorkExperiences 持久化到一个 entityManager 调用的 persist 方法中。
但是,鉴于我如何设计 Web UI 的操作流程,我现在想知道是否可能无法实现另一种情况,即:
先将 WorkExperiences 持久化到 db,然后当用户填写主课程实体详细信息后,到:
将现有的 WorkExperience 实例(已在 db 中)设置为 Curriculum 实例(尚未在 db 中)并
- 坚持整个对象图:课程及其工作经验。
这有意义吗?我想到了几个缺点,例如如果用户选择不保留 Curriculum 实例会发生什么?如何清理 WorkExperience 表中的悬空线?
是否有替代方案或更好的模式?例如,在用户验证表单之前预先保存课程实例是个好主意吗?
【问题讨论】:
标签: java jpa spring-mvc