java如何在基本实体中定义通用主键字段?
我创建了一个BaseEntity
类,它将包含其他实体的所有公共字段,如created_date
、created_by
、updated_by
等,我还在其中保留了主键id
。我正在使用extends
并使用基本实体类中的字段。主要问题是id
字段在某些实体中为Long
类型,而在某些其他实体中为String
类型,因此如何管理id
字段
基本实体类:
@Getter
@Setter
@MappedSuperclass
public abstract class BaseEntity implements Serializable {
private static final long serialVersionUID = 3779027956207925319L;
protected Long id;
private String createdBy;
private Date createdDate;
private String lastUpdatedBy;
private Date lastUpdatedDate;
private Boolean isActive;
public abstract Long getId();
public abstract void setId(Long id);
@Override
public String toString() {
return String.format(
"BaseEntity [createdBy=%s, createdDate=%s, lastUpdatedBy=%s, lastUpdatedDate=%s, isActive=%s]",
createdBy, createdDate, lastUpdatedBy, lastUpdatedDate, isActive);
}
}
# 1 楼答案
修改getter和setter,在它们中使用解析,以便它们获得长数据并提供字符串数据,反之亦然
# 2 楼答案
具有泛型基实体,其中泛型类型定义
id
列的类型当您有一个
id
类型为Long
的实体时,使用该类型进行扩展或者当您需要
String
类型id
时