【发布时间】:2021-02-13 15:42:59
【问题描述】:
我稍微修改了 CPRQ 的设计以帮助我的数据库模式
我有一个 Employee 表和一个 Department 表。两者都有共同的属性
@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;
我已经用 ABaseEntity 扩展了 EmployeeEntity
@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。不保存 tenant 和 status 列。
我知道我错过了一些愚蠢的东西。请帮忙。
编辑
将@MappedSuperclass 添加到 ABaseEntity 类解决了这个问题。
@MappedSuperclass
public class ABaseEntity {...}
【问题讨论】:
-
嘿,伙计,在这个帖子 stackoverflow.com/questions/12570251/… 上掠夺。
标签: spring-boot spring-data-jpa