Java 使用ORM将对象持久化到数据库

Java 使用ORM将对象持久化到数据库,java,jakarta-ee,object,jpa,entity,Java,Jakarta Ee,Object,Jpa,Entity,在实体类中,是否可以将任何对象作为属性,并且当我将实体持久化到数据库时,它是否也会持久化该对象属性?如果对象可序列化,则可以将其序列化为BLOB。但那不是你想做的,因为 不断地序列化和反序列化对象是低效的 这将是非常脆弱的:对象类中的更改将使读取数据库中已保存的以前版本变得不可能(如果您知道自己在做什么,则很难读取) 只有Java能够理解blob 无法对此对象执行任何查询 因此,基本上答案是否定的。JPA实体可以具有嵌入对象,其字段映射到列,或者可以与其他实体(OneToOne、OneToM

在实体类中,是否可以将任何对象作为属性,并且当我将实体持久化到数据库时,它是否也会持久化该对象属性?

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

  • 不断地序列化和反序列化对象是低效的
  • 这将是非常脆弱的:对象类中的更改将使读取数据库中已保存的以前版本变得不可能(如果您知道自己在做什么,则很难读取)
  • 只有Java能够理解blob
  • 无法对此对象执行任何查询
因此,基本上答案是否定的。JPA实体可以具有嵌入对象,其字段映射到列,或者可以与其他实体(OneToOne、OneToMany、ManyToOne或ManyToMany)关联

我的建议是:首先考虑数据库的设计,然后将模式映射到JPA实体。如果您开始编写一个对象模型,甚至没有考虑它将如何在数据库中持久化,那么您不会走得很远