【问题标题】:persisting object to database with ORM使用 ORM 将对象持久化到数据库
【发布时间】:2014-09-25 02:43:49
【问题描述】:

在 Entity 类中,我可以将任何对象作为属性,当我将 Entity 持久保存到数据库时,它是否也会持久保存对象属性?

【问题讨论】:

    标签: java jakarta-ee object jpa entity


    【解决方案1】:

    如果对象是可序列化的,您可以将其序列化为 BLOB。但这不是你想做的事情,因为

    • 不断序列化和反序列化对象效率低下
    • 这将非常脆弱:对象类的更改将导致无法(或者如果您知道自己在做什么,则很难)读取已经保存在数据库中的先前版本
    • 只有 Java 才能理解 blob
    • 您无法对此对象进行任何查询

    所以,基本上,答案是否定的。 JPA 实体可以具有嵌入对象,其字段映射到列,或者可以与其他实体(OneToOne、OneToMany、ManyToOne 或 ManyToMany)关联。

    我的建议:首先考虑数据库的设计,然后将架构映射到 JPA 实体。如果您开始编写对象模型时甚至没有考虑如何将其保存在数据库中,那么您不会走得太远。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 2015-08-19
      • 2021-09-19
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多