我有@OneToMany
JPA与具有WorkExperience
的多个实例的Curriculum
实例的关联。在该实体本身之前坚持/保存JPA实体的关系
的Curriculum
JPA实体:
@Entity
public class Curriculum {
...
@OneToMany
private Set<WorkExperience> workExperiences;
...
的WorkExperience
JPA实体:
@Entity
public class WorkExperience {
...
我本来想与其一起WorkExperiences坚持课程的persist方法之一EntityManager的电话。
然而,鉴于我是如何设计的Web UI的操作流程,我现在想另一种情况是否可能无法即:
坚持的WorkExperiences到数据库,然后再当用户填写的主要课程实体的细节,以:
设置(已在DB)现有WorkExperience实例课程实例(不以dB为单位尚)和
- 持续整个对象图:课程w^ith工作经验。
这有道理吗?我想到了几个缺点,例如如果用户选择不坚持Curriculum实例会发生什么?如何清理WorkExperience表中的悬挂线?
是否有替代品或更好的模式?例如,在用户验证表单之前预先保存课程实例是个好主意吗?
感谢您的回复Kostja。好的,但我在哪里可以在课程最终保存之前存储WorkExperience的独立实例? – balteo
@balteo将它们放入独立课程实体内的'Set'中,所以持久化将被级联。我不熟悉Spring MVC,但是我认为你有一个控制器用于实例化你的视图,并且有一个处理表单提交的方法。这个控制器是我在坚持之前存储课程实体的地方。对于用户创建新实体的视图,我通常在控制器的实例化过程中创建一个空实体,对其进行操作,然后在成功提交后保留它。 – kostja
呃。 Spring MVC控制器是单身人士。将状态置于Singleton中并不是一个好主意。我想过使用会话存储,但它也不是一个好主意...... – balteo