使用ORM将对象持久保存到数据库

时间:2014-08-01 20:11:52

标签: java java-ee object jpa entity

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

1 个答案:

答案 0 :(得分:1)

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

  • 不断地序列化和反序列化对象
  • 是低效的
  • 它会非常脆弱:对象类的更改会使您无法(或者如果您知道自己在做什么的话很难)阅读已保存在数据库中的先前版本
  • 只有Java可以理解blob
  • 您无法对此对象进行任何查询

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

我的建议:首先考虑数据库的设计,然后将模式映射到JPA实体。如果你开始编写一个对象模型而不考虑它将如何在数据库中持久存在,那么你就不会走得太远。