java - 在 JPA 2.0 中维护关系

标签 java hibernate jpa orm jpa-2.0

我已经使用 JPA 2.0 有一段时间了,但很遗憾地承认,我没有足够的时间来正确地学习它。看来我缺乏使用实体管理器的基础知识。

一步一个脚印,我想先问您有关维护映射实体之间关系的问题。当然,我知道如何创建实体之间的映射、不同类型的可用关联(OneToOne 等)以及数据库的一般工作方式。我纯粹专注于通过 Entity Manager 维护它,所以请不要给我发送任何类型的常识教程:-)。

问题是:

  1. 作为一名程序员,我负责维护(创建/更新/删除)实体实例之间的关系,我说得对吗?
  2. 我是否必须始终手动更新(设置为空、从集合中删除等)实例?
  3. 普通 SQL 可以在删除时将实体设置为 NULL,但 JPA 似乎做不到这么简单的事情。手动完成它似乎也是一种负担。有没有办法通过 JPA 实现这一目标?
  4. 如果我有 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/

相关文章:

java - 以编程方式隐藏微调器列表

mysql - 无法使用 Spring Hibernate 连接到 MySQL 数据库

java - 如何在android中使用隐式 Intent 查看网页

java - 可序列化继承

Hibernate/Envers 无法读取映射的属性

java - Spring MVC 中如何在页面提交时绑定(bind)对象属性?

Hibernate 获取子实体,尽管它不应该

spring - Joda 时间和 hibernate 4

java - 使用 XML 而不是通过注释配置 hibernate 有充分的理由吗?

java - Mockito 的验证和参数捕获器的工作