自动检测实例化

  1. @PersistenceCreator 的静态工厂方法
  2. 单一构造函数
  3. 多个构造函数,其中一个带 @PersistenceCreator
  4. 类型为 Java Record,使用规范构造函数
  5. 优先使用无参构造函数,其他构造函数将被忽略

因此,为了避免使用反射,要求属性类:

  1. 不能是一个私有类
  2. 不能是一个非静态内部类
  3. 不能是一个 CGLib 代理类
  4. Spring Data 使用的构造函数不能是私有的

属性填充

避免循环依赖

优先填充主键字段 @Id 来避免循环引用。原理:

忽略 @Transient 字段

@Transient 标注的字段,Spring Data 再保存、加载对象的时候都会完全忽略

具体属性填充规则