我已经使用 JPA 2.0 有一段时间了,但很遗憾地承认,我没有足够的时间来正确地学习它。看来我缺乏使用实体管理器的基础知识。
一步一个脚印,我想先问您有关维护映射实体之间关系的问题。当然,我知道如何创建实体之间的映射、不同类型的可用关联(OneToOne
等)以及数据库的一般工作方式。我纯粹专注于通过 Entity Manager
维护它,所以请不要给我发送任何类型的常识教程:-)。
问题是:
- 作为一名程序员,我负责维护(创建/更新/删除)实体实例之间的关系,我说得对吗?
- 我是否必须始终手动更新(设置为空、从集合中删除等)实例?
- 普通 SQL 可以在删除时将实体设置为 NULL,但 JPA 似乎做不到这么简单的事情。手动完成它似乎也是一种负担。有没有办法通过 JPA 实现这一目标?
- 如果我有
OneToMany
关系并将关系的Many
端的实体设置为 NULL。然后,我通过将实体保存在One
端来将更改保存在 Set 中。然后我是否必须更新Many
端的实体并在每个实例中将关联设置为 NULL?单向绑定(bind)似乎很愚蠢!
提前致谢!
最佳答案
您需要调查的主要内容是映射到实体时的不同选项。例如,在下一段代码中,cascade all 选项将指示 jpa 在删除父列表时删除子列表。
@OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.ALL }, mappedBy = "parent")
private Set<Child> events = new HashSet<Child>();
关于java - 在 JPA 2.0 中维护关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21433047/