Spring boot JPARepository CPRQ modified不保存完整对象
我对CPRQ的设计做了一些修改,以帮助我的数据库模式 我有一张员工表和一张部门表。两者都有共同的属性Spring boot JPARepository CPRQ modified不保存完整对象,spring-boot,spring-data-jpa,Spring Boot,Spring Data Jpa,我对CPRQ的设计做了一些修改,以帮助我的数据库模式 我有一张员工表和一张部门表。两者都有共同的属性 @Column(name="tenantIDPKFK") private Integer tenantIdpkfk; @Column(name="status") private Integer status; 所以我创建了一个基类ABaseEntity,如下所示 public class ABaseEntity { public ABaseEn
@Column(name="tenantIDPKFK")
private Integer tenantIdpkfk;
@Column(name="status")
private Integer status;
所以我创建了一个基类ABaseEntity,如下所示
public class ABaseEntity {
public ABaseEntity() {
}
public ABaseEntity(int tenantIdpkfk, int status) {
this.tenantIdpkfk = tenantIdpkfk ;
this.status = status ;
}
@Column(name="tenantIDPKFK")
private Integer tenantIdpkfk;
@Column(name="status")
private Integer status;
我以极大的热情扩展了雇员的范围
@Entity
@Table(name = "employee")
public class EmployeeEntity extends ABaseEntity{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "first_name")
@NotEmpty(message = "Please provide a name")
@NotBlank
private String firstName;
我的CommandHandler运行以下代码
EmployeeEntity savedEmployeeEntity = this.employeeRepository.saveAndFlush(employee);
this.mediator.emit(new EmployeeCreatedEvent(savedEmployeeEntity.getId()));
数据库保存了对象,但只保存了id
,firstname
。不保存租户
和状态
列
我知道我错过了一些愚蠢的事情。请帮忙
编辑
将@MappedSuperclass
添加到ABaseEntity类中修复了该问题
@MappedSuperclass
public class ABaseEntity {...}
数据库保存了该对象,但只保存了id、firstname。不保存
租户和状态列
默认情况下,JPA不考虑当前类的ORM(对象关系映射)中的父类。 您必须在父类
@heritation
上指定使用或使用默认策略的策略。例如:
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class ABaseEntity {...}
.嘿,伙计,在这条线上拿点战利品。是的,@MappedSuperclas帮了忙。这似乎也行。。谢谢