【问题标题】:Persisting JPA entities with entity fields possible?可以使用实体字段持久化 JPA 实体吗?
【发布时间】:2011-12-22 00:25:36
【问题描述】:

如果我有如下实体:

@Entity
public class Customer {
    private Address address;
}

而且地址也是一个实体:

@Entity
public class Address {...}

持久化客户是否会反过来持久化其包含的地址?或者这根本不可能?这个想法基本上是有一个由其字段组成的主要实体,其中一些是实体本身,将存储在单独的表中。 Customer 的某些字段是独一无二的,因为我还想要一个用于该数据的 Customer 表。除非我只是想念它,否则我无法找到这个答案。这是我只是好奇的事情,我目前不在可以尝试的机器上,所以我想先问一下。

提前致谢。

【问题讨论】:

  • 当然可以。您刚刚重新发明了 OneToOne(或 ManyToOne)关联。这当然包含在任何有关 JPA 的教程/书籍中。

标签: java jpa persistence entity


【解决方案1】:

这是可能的和 JPA 基础。但是您必须在实体类中定义实体之间的关联。

我建议阅读有关此主题的好教程,例如Java EE6 tutorial

【讨论】:

    【解决方案2】:

    根据您的域模型,您有 2 个选项:

    • 从地址中移除@Entity并用@Embeddable注解

    • 将 Person 中的地址映射为:@OneToOne(cascade = {CascadeType.PERSIST})

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 2017-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多